Bug 693847 - JobServer's qmf methods are not callable from qpid-tool
Summary: JobServer's qmf methods are not callable from qpid-tool
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-qmf
Version: Development
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: 2.0
: ---
Assignee: Gordon Sim
QA Contact: Tomas Rusnak
URL:
Whiteboard:
Depends On: 697503
Blocks: 695728 696195
TreeView+ depends on / blocked
 
Reported: 2011-04-05 18:08 UTC by Frantisek Reznicek
Modified: 2015-11-16 01:13 UTC (History)
9 users (show)

Fixed In Version: qpid-tools-0.10-3
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 696195 (view as bug list)
Environment:
Last Closed: 2011-06-27 15:39:32 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Frantisek Reznicek 2011-04-05 18:08:52 UTC
Description of problem:

During the bug 692485 verification an issue either in qpid-tool or in JobServer's qmf schema was detected:
JobServer's qmf methods are not callable from qpid-tool.

GetJobSummaries state via qpid-tool:
qpid: call 11414 GetJobSummaries
qpid: OK (0) - {u'Jobs': [{u'ProcId': 0, u'CurrentTime': 1301909239, u'QDate':
1301908659, u'Cmd': '/tmp/.condor_run.28044', u'ClusterId': 2531, u'JobStatus':
2, u'Arguments': '""', u'EnteredCurrentStatus': 1301908670, u'GlobalJobId':
'mrg-qe-05.lab.eng.brq.redhat.com#2531.0#1301908659'}]}


Now I'm trying to call GetJobAd method in qpid-tool:

qpid: call 322 GetJobAd '2531.0'
qpid: Unknown Job Id (65536) - {}

qpid:
qpid: call 322 GetJobAd 2531.0
qpid: invalid conversion: Variant is not a string; use asString() if conversion
is required. (qpid/types/Variant.cpp:569) (7) - {}

qpid: call 322 GetJobAd "2531.0"
qpid: Unknown Job Id (65536) - {}
qpid: 
qpid: call 322 GetJobAd '2531.0'
qpid: Unknown Job Id (65536) - {}

Above tree GetJobAd calls from qpid-tool fail regardless of quoting...


Version-Release number of selected component (if applicable):
condor-7.6.0-0.4.el5
condor-qmf-7.6.0-0.4.el5
qpid-qmf-0.10-2.el5
qpid-cpp-server-0.10-1.el5
qpid-qmf-devel-0.10-2.el5
qpid-tools-0.10-1.el5
qpid-cpp-client-0.10-1.el5
ruby-qpid-qmf-0.10-2.el5
qpid-cpp-client-devel-0.10-1.el5
python-qpid-0.10-1.el5
python-qpid-qmf-0.10-2.el5

How reproducible:
100%

Steps to Reproduce:
1. see lines above or 
https://bugzilla.redhat.com/show_bug.cgi?id=692485#c7
  
Actual results:
qpid-tool is not possible to use for GetJobAd call.

Expected results:
qpid-tool should allow GetJobAd call.

Additional info:

There seems to be no problem with qpid-tool itself as following calls invoking broker agent's method 'reroute' just work:
qpid: call 246 reroute 5 True "amq.topic"
qpid: OK (0) - {}

qpid: call 246 reroute 5 True 'amq.topic'
qpid: OK (0) - {}

qpid: call 246 reroute 5 True amq.topic
qpid: OK (0) - {}

Comment 1 Frantisek Reznicek 2011-04-05 18:15:51 UTC
Hello Pete,
could you possibly confirm that you see the JobServer's qmf schema is ok and qpid-tool should be able to invoke above method.

I think you mention it at the end of call... If I'm mistaken, then I'm goung to change component for messaging's qpid-tool.

Raising NEEDINFO for Pete.

Comment 2 Matthew Farrellee 2011-04-05 18:19:00 UTC
Result of discussions is that this likely comes from a qpid-tool change that enabled sending structured arguments, e.g. maps.

qpid-tool has schema information and should either coerce the 2531.0 into a string, or not pass a string containing quotes (either "2531.0" or '2531.0') to the JobServer.

Comment 3 Frantisek Reznicek 2011-04-05 18:25:41 UTC
Changing the component to qpid-tool (management) including blocker as requested.

Comment 4 Gordon Sim 2011-04-06 11:35:57 UTC
See https://issues.apache.org/jira/browse/QPID-3190 to which two options for fixing have been linked.

Comment 6 Tomas Rusnak 2011-05-24 14:39:14 UTC
Retested over all supported platforms x86, x86_64 with:

RHEL5:
python-qpid-0.10-1.el5
python-qpid-qmf-0.10-8.el5
qpid-cpp-client-0.10-7.el5
qpid-cpp-client-devel-0.10-7.el5
qpid-cpp-client-devel-docs-0.10-7.el5
qpid-cpp-client-ssl-0.10-7.el5
qpid-cpp-server-0.10-7.el5
qpid-cpp-server-cluster-0.10-7.el5
qpid-cpp-server-devel-0.10-7.el5
qpid-cpp-server-ssl-0.10-7.el5
qpid-cpp-server-store-0.10-7.el5
qpid-cpp-server-xml-0.10-7.el5
qpid-java-client-0.10-6.el5
qpid-java-common-0.10-6.el5
qpid-java-example-0.10-6.el5
qpid-qmf-0.10-8.el5
qpid-qmf-devel-0.10-8.el5
qpid-tools-0.10-5.el5
ruby-qpid-qmf-0.10-8.el5

RHEL6:

python-qpid-0.10-1.el6.noarch
python-qpid-qmf-0.10-7.el6.x86_64
qpid-cpp-client-0.10-4.el6.x86_64
qpid-cpp-client-devel-0.10-4.el6.x86_64
qpid-cpp-client-devel-docs-0.10-4.el6.noarch
qpid-cpp-client-rdma-0.10-4.el6.x86_64
qpid-cpp-client-ssl-0.10-4.el6.x86_64
qpid-cpp-server-0.10-4.el6.x86_64
qpid-cpp-server-cluster-0.10-4.el6.x86_64
qpid-cpp-server-devel-0.10-4.el6.x86_64
qpid-cpp-server-rdma-0.10-4.el6.x86_64
qpid-cpp-server-ssl-0.10-4.el6.x86_64
qpid-cpp-server-store-0.10-4.el6.x86_64
qpid-cpp-server-xml-0.10-4.el6.x86_64
qpid-java-client-0.10-6.el6.noarch
qpid-java-common-0.10-6.el6.noarch
qpid-java-example-0.10-6.el6.noarch
qpid-java-jca-0.10-6.el6.noarch
qpid-qmf-0.10-7.el6.x86_64
qpid-tests-0.10-1.el6.noarch
qpid-tools-0.10-4.el6.noarch
rh-qpid-cpp-tests-0.10-4.el6.x86_64
ruby-qpid-0.7.946106-2.el6.x86_64
ruby-qpid-qmf-0.10-7.el6.x86_64
sesame-debuginfo-0.10-1.el6.x86_64
=====
python-qpid-0.10-1.el6.noarch
python-qpid-qmf-0.10-7.el6.i686
qpid-cpp-client-0.10-4.el6.i686
qpid-cpp-client-devel-0.10-4.el6.i686
qpid-cpp-client-devel-docs-0.10-4.el6.noarch
qpid-cpp-client-rdma-0.10-4.el6.i686
qpid-cpp-client-ssl-0.10-4.el6.i686
qpid-cpp-server-0.10-4.el6.i686
qpid-cpp-server-cluster-0.10-4.el6.i686
qpid-cpp-server-devel-0.10-4.el6.i686
qpid-cpp-server-rdma-0.10-4.el6.i686
qpid-cpp-server-ssl-0.10-4.el6.i686
qpid-cpp-server-store-0.10-4.el6.i686
qpid-cpp-server-xml-0.10-4.el6.i686
qpid-java-client-0.10-6.el6.noarch
qpid-java-common-0.10-6.el6.noarch
qpid-java-example-0.10-6.el6.noarch
qpid-java-jca-0.10-6.el6.noarch
qpid-qmf-0.10-7.el6.i686
qpid-qmf-devel-0.10-7.el6.i686
qpid-tests-0.10-1.el6.noarch
qpid-tools-0.10-4.el6.noarch
rh-qpid-cpp-tests-0.10-4.el6.i686
ruby-qpid-0.7.946106-2.el6.i686
ruby-qpid-qmf-0.10-7.el6.i686
sesame-0.10-1.el6.i686
sesame-debuginfo-0.10-1.el6.i686


qpid: list
Summary of Objects by Type:
    Package          Class       Active  Deleted
    ==============================================
    com.redhat.grid  scheduler   1       0
    com.redhat.grid  slot        1       0
    com.redhat.grid  master      1       0
    com.redhat.grid  submitter   1       0
    com.redhat.grid  negotiator  1       0
    com.redhat.grid  submission  1       0
    com.redhat.grid  jobserver   1       0
    com.redhat.grid  collector   1       0
qpid: list jobserver
Object Summary:
    ID   Created   Destroyed  Index
    ==========================================================================
    106  12:56:06  -          jobs.lab.eng.brq.redhat.com
qpid: call 106 GetJobAd "246.0"
qpid: OK (0) - {...}

qpid: call 106 GetJobAd 246.0
qpid: invalid conversion: Variant is not a string; use asString() if conversion is required. (qpid/types/Variant.cpp:569) (7) - {}

Working as expected, the parameter must be quoted by current schema, in any other cases it's return invalid conversion error. Quoted job id was sent to jobserver in right format - without quotes.

>>> VERIFIED


Note You need to log in before you can comment on or make changes to this bug.