[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Condor-users] Re: Condor 6.7.7 Webservices: Method 'beginTransaction' not implemented



Hi Matthew,

> Anyway, if null is returned from GetRequirements() that means all the
> requirements have been met, i.e. all the input files have been sent
> etc. In actuality the Schedd is probably sending an array of no
> elements that is being turned into null in Java.

Thanks for explaining. 

I have successfully submitted a job, but now find that the job is sitting idle 
in the queue. 

I use condor_rm -all from the command line to remove the job and end up with 
the following:

condor@chewy:/home/garry> condor_q
-- Submitter: chewy.lan : <192.168.100.1:1350> : chewy.lan
 ID      OWNER            SUBMITTED     RUN_TIME ST PRI SIZE CMD
  10.0   condor          6/1  14:42   0+00:00:00 X  0   0.0  cp -f TestFile 
Tes
  11.0   condor          6/1  14:49   0+00:00:00 X  0   0.0  hostname

0 jobs; 0 idle, 0 running, 0 held

I know the X state means the jobs have been deleted, but I expect them to not 
show up in the condor_q output any longer.   

Everytime I submit a new job it remains in the idle state and does not 
progress. Normally jobs execute almost straight away (when the machine is 
idle as it is now)

condor@chewy:/home/garry> condor_status

Name          OpSys       Arch   State      Activity   LoadAv Mem   ActvtyTime

chewy.lan     LINUX       INTEL  Unclaimed  Idle       0.270   502  0+00:15:04

                     Machines Owner Claimed Unclaimed Matched Preempting

         INTEL/LINUX        1     0       0         1       0          0

               Total        1     0       0         1       0          0


The client code snippet is here (the first submit was commented out before 
executing the second submit:

import condor.*;

import java.io.*;
import java.net.URL;
import java.util.*;

public class GarrySubmitJob
   {

   public static void main(String[] args)
      throws Exception
      {
      URL scheddLocation = new URL("http://192.168.100.1:1350";);

      CondorScheddLocator scheddLocator = new CondorScheddLocator();
      CondorScheddPortType schedd = 
scheddLocator.getcondorSchedd(scheddLocation);

      String filesToSend[] = {"TestFile"};

//      SOAPScheddApiHelper.submitJobHelper(schedd, null, -1, -1, "condor", 
UniverseType.VANILLA, "/bin/cp","-f TestFile Testfile.worked", 
"OpSys==\"LINUX\"", null, filesToSend);

      SOAPScheddApiHelper.submitJobHelper(schedd, null, -1, -1, "condor", 
UniverseType.VANILLA, "/bin/hostname","", "OpSys==\"LINUX\"", null, null);

      }
 }


Any thoughts? 
Thanks in advance.

regards
Garry

>
>
> matt
>
> On Jun 1, 2005, at 8:04 AM, Garry Smith wrote:
> > Hi
> >
> > On Tuesday 31 May 2005 18:47, Matthew Farrellee wrote:
> >> You are talking to the Collector (on port 9618) not the Schedd. You
> >> can query the Collector for a Schedd by using the constraint
> >> "HasSOAPInterface=?=TRUE" and extracting the MyAddress attribute. Or,
> >> I believe you can force the Schedd to start on a specific port by
> >> adding "SCHEDD_ARGS=-p 1134" to your configuration file.
> >
> > Doh! Thanks for the tip.
> >
> > For the moment I am looking in the Schedd config file for the port,
> > and using
> > the same port number at the client.
> >
> > Now a problem: The Requirements object returned to the client, is
> > null. Why is
> > this? Does this mean that the requirements had not been met? Seems
> > strange
> > because the only requirement specified is OpSys==\"LINUX\".
> >
> > Environment: Condor 6.7.7 Personal condor install. Client and
> > Server on same
> > host. Web Services interface.
> >
> > See below for code snippets and logs.
> >
> > Please advise.
> >
> > Thanks in advance
> > Garry
> >
> > java -cp ../lib:.:$AXISCLASSPATH GarrySubmitJob
> > Garry: Entered submitJobHelper(11 params)
> > Garry: transaction is null, so we need to create our own
> > transaction now
> > Garry: schedd.beginTransation set to 600 (was 60)
> > Garry: trans_s should now have been created
> > Garry: trans_s is not null
> > At this point we assume that the transaction has began, given that
> > we have not
> > recieved any errors
> > Garry: The old clusterId was: -1
> > Garry: The current clusterId is: 7
> > Garry: Call the submitJobHelper (4 params) method
> > Garry: Entered submitJobJHelper (4 params)
> > Garry: Submitted successfully
> > Garry: req_s is not null
> > Garry: reqs IS NULL
> > Garry: Check if the requirements have been met
> > Exception in thread "main" java.lang.NullPointerException
> >         at SOAPScheddApiHelper.submitJobHelper
> > (SOAPScheddApiHelper.java:154)
> >         at SOAPScheddApiHelper.submitJobHelper
> > (SOAPScheddApiHelper.java:346)
> >         at GarrySubmitJob.main(GarrySubmitJob.java:20)
> >
> >
> > GarrySubmitJob:
> > ---------------------
> > import condor.*;
> >
> > import java.io.*;
> > import java.net.URL;
> > import java.util.*;
> >
> > public class GarrySubmitJob
> >    {
> >
> >    public static void main(String[] args)
> >       throws Exception
> >       {
> >       URL scheddLocation = new URL("http://192.168.100.1:1225";);
> >
> >       CondorScheddLocator scheddLocator = new CondorScheddLocator();
> >       CondorScheddPortType schedd =
> > scheddLocator.getcondorSchedd(scheddLocation);
> >
> >       String filesToSend[] = {"TestFile"};
> >
> >       SOAPScheddApiHelper.submitJobHelper(schedd, null, -1, -1,
> > "nobody",
> > UniverseType.VANILLA, "/bin/cp","-f TestFile Testfile.worked",
> > "OpSys==\"LINUX\"", null, filesToSend);
> >       }
> >
> >    }
> >
> >
> > A snippet from SOAPScheddApiHelper.java (with System.out.println
> > comments by
> > me. No other changes have been made to the source):
> >
> >         Requirements reqs = reqs_s.getRequirements();
> >
> >         if(reqs!=null){
> >                 System.out.println("Garry: reqs is not null");
> >         }else{
> >                 System.out.println("Garry: reqs IS NULL");
> >         }
> >
> >         System.out.println("Garry: Check if the requirements have
> > been met");
> >         if(reqs.getItem() != null) {
> >             System.err.println("Requirements not met");
> >         // file transfer?
> >         }
> >
> >         System.out.println("About to check the dontCommit variable");
> >
> >         if(dontCommit){
> >                 System.out.println("DontCommit is TRUE");
> >         }else{
> >                 System.out.println("DontCommit is FALSE");
> >         }
> >
> >         if(!dontCommit) {
> >             System.out.println("About to commitTransaction...");
> >             Status st = schedd.commitTransaction(transaction);
> >             if(st!=null){
> >                 System.out.println("st is not null");
> >             }else{
> >                 System.out.println("st IS NULL");
> >             }
> >
> >             if(!(st.getCode()).equals(StatusCode.SUCCESS)) {
> >                 System.err.println("Failed to commit");
> >                 throw new JobSubmissionException("Failed to commit");
> >             }
> >         }
> >
> >         System.out.println("Returning to caller");
> >
> >     }
> >
> > CollectorLog:
> > ----------------
> > 6/1 13:50:57 Found StartdIpAddr
> > 6/1 13:50:57 Got IP = '<192.168.100.1:1082>'
> > 6/1 13:52:07 Found ScheddIpAddr
> > 6/1 13:52:07 Got IP = '<192.168.100.1:1225>'
> > 6/1 13:52:17 Found ScheddIpAddr
> > 6/1 13:52:17 Got IP = '<192.168.100.1:1278>'
> >
> > MasterLog
> > -------------
> > 6/1 13:52:07 The SCHEDD (pid 8912) died due to signal 6
> > 6/1 13:52:07 Sending obituary for
> > "/home/condor/bin/condor-6.7.7/sbin/condor_schedd"
> > 6/1 13:52:07 restarting /home/condor/bin/condor-6.7.7/sbin/
> > condor_schedd in 10
> > seconds
> > 6/1 13:52:17 Started DaemonCore process
> > "/home/condor/bin/condor-6.7.7/sbin/condor_schedd", pid and pgroup
> > = 9527
> >
> > SchedLog:
> > -------------
> > 6/1 13:51:06 Received HTTP POST connection from <192.168.100.1:1269>
> > 6/1 13:51:06 About to serve HTTP request...
> > 6/1 13:51:06 Completed servicing HTTP request
> > 6/1 13:51:06 Received HTTP POST connection from <192.168.100.1:1270>
> > 6/1 13:51:06 About to serve HTTP request...
> > 6/1 13:51:06 Completed servicing HTTP request
> > 6/1 13:51:06 Received HTTP POST connection from <192.168.100.1:1271>
> > 6/1 13:51:06 About to serve HTTP request...
> > 6/1 13:51:06 Completed servicing HTTP request
> > 6/1 13:51:06 Received HTTP POST connection from <192.168.100.1:1272>
> > 6/1 13:51:06 About to serve HTTP request...
> > 6/1 13:51:06 Completed servicing HTTP request
> > 6/1 13:51:06 Received HTTP POST connection from <192.168.100.1:1273>
> > 6/1 13:51:06 About to serve HTTP request...
> > 6/1 13:51:06 Completed servicing HTTP request
> > 6/1 13:51:06 Received HTTP POST connection from <192.168.100.1:1274>
> > 6/1 13:51:06 About to serve HTTP request...
> > 6/1 13:51:06 Completed servicing HTTP request
> > 6/1 13:51:06 Received HTTP POST connection from <192.168.100.1:1275>
> > 6/1 13:51:06 About to serve HTTP request...
> > 6/1 13:51:06 Completed servicing HTTP request
> > 6/1 13:51:06 Received HTTP POST connection from <192.168.100.1:1276>
> > 6/1 13:51:06 About to serve HTTP request...
> > 6/1 13:51:06 Completed servicing HTTP request
> > 6/1 13:51:06 Received HTTP POST connection from <192.168.100.1:1277>
> > 6/1 13:51:06 About to serve HTTP request...
> > 6/1 13:51:06 Completed servicing HTTP request
> > 6/1 13:52:07 Job has no JobStatus attribute.  Ignoring...
> > 6/1 13:52:07 Job has no JobStatus attribute.  Ignoring...
> > 6/1 13:52:07 Job has no JobStatus attribute.  Ignoring...
> > 6/1 13:52:17 ******************************************************
> > 6/1 13:52:17 ** condor_schedd (CONDOR_SCHEDD) STARTING UP
> > 6/1 13:52:17 ** /home/condor/bin/condor-6.7.7/sbin/condor_schedd
> > 6/1 13:52:17 ** $CondorVersion: 6.7.7 Apr 27 2005 $
> > 6/1 13:52:17 ** $CondorPlatform: I386-LINUX_RH9 $
> > 6/1 13:52:17 ** PID = 9527
> > 6/1 13:52:17 ******************************************************
> > 6/1 13:52:17 Using config file: /home/condor/bin/condor/etc/
> > condor_config
> > 6/1 13:52:17 Using local config
> > files: /home/condor/bin/condor-6.7.7/local.chewy/condor_config.local
> > 6/1 13:52:17 DaemonCore: Command Socket at <192.168.100.1:1278>
> > 6/1 13:52:17 Job 7.0 has no Owner attribute.  Removing....
> > 6/1 13:52:17 Job 6.0 has no Owner attribute.  Removing....
> > 6/1 13:52:17 Job 8.0 has no Owner attribute.  Removing....
> >
> >> On May 31, 2005, at 12:21 PM, Garry Smith wrote:
> >>> Hi Matthew and the Condor team,
> >>>
> >>> Condor 6.7.7. Personal install on Linux.
> >>> Web Services interface. Trying to execute a query from a Java
> >>> client to Condor
> >>> WS (both on the same machine).
> >>>
> >>> Have generated the java stub/skeleton classes from the WSDL
> >>> provided with
> >>> condor using WSDL2JAVA from AXIS.
> >>>
> >>> Summary of error String:
> >>>
> >>> faultString: Method 'beginTransaction' not implemented: method
> >>> name or
> >>> namespace not recognized.
> >>>
> >>> See below for details and logs.  Please advise..
> >>> Thanks in advance.
> >>>
> >>> regards
> >>> Garry
> >>>
> >>>
> >>> Condor_config has the following lines added:
> >>> -------------------------------------------------------------
> >>> # Web Services functionality added by Garry as per
> >>> # http://www.cs.wisc.edu/condor/birdbath
> >>> WEB_ROOT_DIR = /home/condor/bin/condor/web
> >>> ENABLE_SOAP= TRUE
> >>> ENABLE_WEB_SERVER = TRUE
> >>> ALLOW_SOAP= */192.168.100.1
> >>>
> >>> NOTE: 192.168.100.1 is the IP address of the machine (chewy)
> >>> running both the
> >>> Condor daemons and the client.
> >>>
> >>> I have created the condor-home/web directory and inserted
> >>> condorCollector.wsdl
> >>> condorSchedd.wsdl as stated in the birdbath Website. The wsdl was
> >>> copied from
> >>> condor_home/lib/webservice.
> >>>
> >>> Client Code (GarrySubmitJob.java) (same as your SubmitJob.java
> >>> code):
> >>> --------------------------------------------------------------------
> >>> --
> >>> -------
> >>> import condor.*;
> >>>
> >>> import java.io.*;
> >>> import java.net.URL;
> >>> import java.util.*;
> >>>
> >>> public class GarrySubmitJob
> >>>    {
> >>>
> >>>    public static void main(String[] args)
> >>>       throws Exception
> >>>       {
> >>>       URL scheddLocation = new URL("http://chewy:9618";);
> >>>
> >>>       CondorScheddLocator scheddLocator = new CondorScheddLocator();
> >>>       CondorScheddPortType schedd =
> >>> scheddLocator.getcondorSchedd(scheddLocation);
> >>>
> >>>       String filesToSend[] = {"TestFile"};
> >>>
> >>>       SOAPScheddApiHelper.submitJobHelper(schedd, null, -1, -1,
> >>> "nobody",
> >>> UniverseType.VANILLA, "/bin/cp","-f TestFile Testfile.worked",
> >>> "OpSys==\"LINUX\"", null, filesToSend);
> >>>       }
> >>>
> >>>    }
> >>>
> >>> SOAPScheddApiHelper.java
> >>> -------------------------------------
> >>> Sent to me by Matthew Farrellee on 2005-05-18.
> >>>
> >>>
> >>> Client Stack trace:
> >>> ------------------------
> >>> java -cp ../lib:.:$AXISCLASSPATH GarrySubmitJob
> >>> Exception in thread "main" AxisFault
> >>>  faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client
> >>>  faultSubcode:
> >>>  faultString: Method 'beginTransaction' not implemented: method
> >>> name or
> >>> namespace not recognized
> >>>  faultActor:
> >>>  faultNode:
> >>>  faultDetail:
> >>>         {http://xml.apache.org/axis/}stackTrace:Method
> >>> 'beginTransaction' not
> >>> implemented: method name or namespace not recognized
> >>>         at
> >>> org.apache.axis.message.SOAPFaultBuilder.createFault
> >>> (SOAPFaultBuilder.java:221)
> >>>         at
> >>> org.apache.axis.message.SOAPFaultBuilder.endElement
> >>> (SOAPFaultBuilder.java:128)
> >>>         at
> >>> org.apache.axis.encoding.DeserializationContext.endElement
> >>> (DeserializationContext.java:1087)
> >>>         at org.apache.xerces.parsers.AbstractSAXParser.endElement
> >>> (Unknown
> >>> Source)
> >>>         at
> >>> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement
> >>> (Unknown
> >>> Source)
> >>>         at
> >>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl
> >>> $FragmentContentDispatcher.dispatch(Unknown
> >>> Source)
> >>>         at
> >>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument
> >>> (Unknown
> >>> Source)
> >>>         at org.apache.xerces.parsers.XML11Configuration.parse
> >>> (Unknown Source)
> >>>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
> >>> Source)
> >>>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >>>         at org.apache.xerces.parsers.AbstractSAXParser.parse
> >>> (Unknown Source)
> >>>         at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
> >>>         at
> >>> org.apache.axis.encoding.DeserializationContext.parse
> >>> (DeserializationContext.java:227)
> >>>         at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:
> >>> 696)
> >>>         at org.apache.axis.Message.getSOAPEnvelope(Message.java:424)
> >>>         at
> >>> org.apache.axis.handlers.soap.MustUnderstandChecker.invoke
> >>> (MustUnderstandChecker.java:62)
> >>>         at org.apache.axis.client.AxisClient.invoke(AxisClient.java:
> >>> 206)
> >>>         at org.apache.axis.client.Call.invokeEngine(Call.java:2754)
> >>>         at org.apache.axis.client.Call.invoke(Call.java:2737)
> >>>         at org.apache.axis.client.Call.invoke(Call.java:2413)
> >>>         at org.apache.axis.client.Call.invoke(Call.java:2336)
> >>>         at org.apache.axis.client.Call.invoke(Call.java:1793)
> >>>         at condor.CondorScheddStub.beginTransaction
> >>> (CondorScheddStub.java:641)
> >>>         at SOAPScheddApiHelper.submitJobHelper
> >>> (SOAPScheddApiHelper.java:220)
> >>>         at GarrySubmitJob.main(GarrySubmitJob.java:20)
> >>>
> >>>         {http://xml.apache.org/axis/}hostname:chewy
> >>>
> >>> Method 'beginTransaction' not implemented: method name or namespace
> >>> not
> >>> recognized
> >>>         at
> >>> org.apache.axis.message.SOAPFaultBuilder.createFault
> >>> (SOAPFaultBuilder.java:221)
> >>>         at
> >>> org.apache.axis.message.SOAPFaultBuilder.endElement
> >>> (SOAPFaultBuilder.java:128)
> >>>         at
> >>> org.apache.axis.encoding.DeserializationContext.endElement
> >>> (DeserializationContext.java:1087)
> >>>         at org.apache.xerces.parsers.AbstractSAXParser.endElement
> >>> (Unknown
> >>> Source)
> >>>         at
> >>> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement
> >>> (Unknown
> >>> Source)
> >>>         at
> >>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl
> >>> $FragmentContentDispatcher.dispatch(Unknown
> >>> Source)
> >>>         at
> >>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument
> >>> (Unknown
> >>> Source)
> >>>         at org.apache.xerces.parsers.XML11Configuration.parse
> >>> (Unknown Source)
> >>>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
> >>> Source)
> >>>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >>>         at org.apache.xerces.parsers.AbstractSAXParser.parse
> >>> (Unknown Source)
> >>>         at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
> >>>         at
> >>> org.apache.axis.encoding.DeserializationContext.parse
> >>> (DeserializationContext.java:227)
> >>>         at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:
> >>> 696)
> >>>         at org.apache.axis.Message.getSOAPEnvelope(Message.java:424)
> >>>         at
> >>> org.apache.axis.handlers.soap.MustUnderstandChecker.invoke
> >>> (MustUnderstandChecker.java:62)
> >>>         at org.apache.axis.client.AxisClient.invoke(AxisClient.java:
> >>> 206)
> >>>         at org.apache.axis.client.Call.invokeEngine(Call.java:2754)
> >>>         at org.apache.axis.client.Call.invoke(Call.java:2737)
> >>>         at org.apache.axis.client.Call.invoke(Call.java:2413)
> >>>         at org.apache.axis.client.Call.invoke(Call.java:2336)
> >>>         at org.apache.axis.client.Call.invoke(Call.java:1793)
> >>>         at condor.CondorScheddStub.beginTransaction
> >>> (CondorScheddStub.java:641)
> >>>         at SOAPScheddApiHelper.submitJobHelper
> >>> (SOAPScheddApiHelper.java:220)
> >>>         at GarrySubmitJob.main(GarrySubmitJob.java:20)
> >>>
> >>>
> >>> Only two condor logs have timestamps that are later than the
> >>> client's
> >>> submission. Details below ...
> >>>
> >>> MasterLog (from the time that the query was submitted)
> >>> --------------------------------------------------------------------
> >>> --
> >>> ----
> >>>
> >>> 5/31 17:48:50 Received HTTP POST connection from
> >>> <192.168.100.1:1367>
> >>> 5/31 17:48:50 About to serve HTTP request...
> >>> 5/31 17:48:50 Completed servicing HTTP request
> >>> 5/31 17:49:12 Found ScheddIpAddr
> >>> 5/31 17:49:12 Got IP = '<192.168.100.1:1335>'
> >>> 5/31 17:49:12 NegotiatorAd  : Inserting ** "< chewy.lan >"
> >>> 5/31 17:49:12 (Sending 4 ads in response to query)
> >>> 5/31 17:49:12 Got QUERY_STARTD_PVT_ADS
> >>> 5/31 17:49:12 (Sending 1 ads in response to query)
> >>> 5/31 17:49:29 Found StartdIpAddr
> >>> 5/31 17:49:29 Got IP = '<192.168.100.1:1336>'
> >>>
> >>> NegotiatorLog (from the time of the client request)
> >>> --------------------------------------------------------------------
> >>> -
> >>> 5/31 17:49:12 ---------- Started Negotiation Cycle ----------
> >>> 5/31 17:49:12 Phase 1:  Obtaining ads from collector ...
> >>> 5/31 17:49:12   Getting all public ads ...
> >>> 5/31 17:49:12   Sorting 4 ads ...
> >>> 5/31 17:49:12   Getting startd private ads ...
> >>> 5/31 17:49:12 Got ads: 4 public and 1 private
> >>> 5/31 17:49:12 Public ads include 0 submitter, 1 startd
> >>> 5/31 17:49:12 Phase 2:  Performing accounting ...
> >>> 5/31 17:49:12 Phase 3:  Sorting submitter ads by priority ...
> >>> 5/31 17:49:12 Phase 4.1:  Negotiating with schedds ...
> >>> 5/31 17:49:12 ---------- Finished Negotiation Cycle ----------
> >>> 5/31 17:54:12 ---------- Started Negotiation Cycle ----------
> >>> 5/31 17:54:12 Phase 1:  Obtaining ads from collector ...
> >>> 5/31 17:54:12   Getting all public ads ...
> >>> 5/31 17:54:12   Sorting 4 ads ...
> >>> 5/31 17:54:12   Getting startd private ads ...
> >>> 5/31 17:54:12 Got ads: 4 public and 1 private
> >>> 5/31 17:54:12 Public ads include 0 submitter, 1 startd
> >>> 5/31 17:54:12 Phase 2:  Performing accounting ...
> >>> 5/31 17:54:12 Phase 3:  Sorting submitter ads by priority ...
> >>> 5/31 17:54:12 Phase 4.1:  Negotiating with schedds ...
> >>> 5/31 17:54:12 ---------- Finished Negotiation Cycle ----------