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) - {}
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.
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.
Changing the component to qpid-tool (management) including blocker as requested.
See https://issues.apache.org/jira/browse/QPID-3190 to which two options for fixing have been linked.
Fix committed upstream: http://svn.apache.org/viewvc?rev=1090170&view=rev and in release repo: http://mrg1.lab.bos.redhat.com/cgit/qpid.git/commit/?id=92328a7cb33802982722156f99a050438dedfe3d
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