Uploaded image for project: 'Nuxeo ECM Build/Test Environment'
  1. Nuxeo ECM Build/Test Environment
  2. NXBT-770

Fix deadlock on oracle-dbdrop Ant target

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: NXFT-1.7.14
    • Fix Version/s: NXFT-1.7.16
    • Component/s: nuxeo-ftest

      Description

      There's a deadlock on sql task with Oracle DB.

      On CI, there's a systematic timeout. See https://qa.nuxeo.org/jenkins/job/IT-nuxeo-master-tests-dm-tomcat-oracle10/616/console:

      00:00:28.258 integration-tests.setup-oracle-driver:
      00:00:28.258 [INFO]      [copy] Copying 1 file to /home/hudson/tmp/workspace/IT-nuxeo-master-tests-dm-tomcat-oracle10/nuxeo/nuxeo-distribution/nuxeo-distribution-dm/ftest/webdriver/target/jdbc-libs
      02:00:01.911 Build timed out (after 120 minutes). Marking the build as aborted.

      It is reproducible and comes from the sql task:

        <target name="oracle-dbdrop"
                depends="_init,setup-oracle-driver"
                if="nuxeo.dbsetup.dodbconf">
          <sql driver="oracle.jdbc.OracleDriver"
               url="jdbc:oracle:thin:@//${nuxeo.db.host}:${nuxeo.db.port}/${nuxeo.dbsetup.adminname}"
               userid="${nuxeo.dbsetup.adminuser} as sysdba"
               password="${nuxeo.dbsetup.adminpass}"
               autocommit="true"
               delimiter="--next--">
            <classpath>
              <pathelement path="${classpath}" />
              <fileset dir="${jdbc.dir}">
                <include name="**/*.jar" />
              </fileset>
            </classpath>
            DECLARE
              num number:=0;
              drop_stmt VARCHAR2(200);
            BEGIN
              SELECT COUNT(*) INTO num FROM dba_users WHERE username = UPPER('${nuxeo.db.user}');
              IF num &lt;&gt; 0 THEN
                EXECUTE IMMEDIATE 'DROP USER ${nuxeo.db.user} CASCADE';
              END IF;
            EXCEPTION
              WHEN OTHERS THEN
                raise_application_error(-20001,'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM);
            END;
          </sql>
        </target>
      	at java.net.SocketInputStream.socketRead0(Native Method)
      	at java.net.SocketInputStream.read(SocketInputStream.java:150)
      	at java.net.SocketInputStream.read(SocketInputStream.java:121)
      	at oracle.net.ns.Packet.receive(Unknown Source)
      	at oracle.net.ns.NSProtocol.connect(Unknown Source)
      	at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:879)
      	at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:269)
      	at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:454)
      	at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
      	at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
      	at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:802)
      	at org.apache.tools.ant.taskdefs.JDBCTask.getConnection(JDBCTask.java:370)
      	at org.apache.tools.ant.taskdefs.SQLExec.getConnection(SQLExec.java:940)
      	at org.apache.tools.ant.taskdefs.SQLExec.execute(SQLExec.java:612)
      	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
      	at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:601)
      	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
      	at org.apache.tools.ant.Task.perform(Task.java:348)
      	at org.apache.tools.ant.Target.execute(Target.java:435)
      	at org.apache.tools.ant.Target.performTasks(Target.java:456)
      	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
      	at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
      	at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
      	at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:440)
      	at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
      	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
      	at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:601)
      	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
      	at org.apache.tools.ant.Task.perform(Task.java:348)
      	at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
      	at org.nuxeo.build.ant.profile.ProfileTask.execute(ProfileTask.java:106)
      	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
      	at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:601)
      	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
      	at org.apache.tools.ant.Task.perform(Task.java:348)
      	at org.apache.tools.ant.Target.execute(Target.java:435)
      	at org.apache.tools.ant.Target.performTasks(Target.java:456)
      	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
      	at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
      	at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
      	at org.nuxeo.build.ant.AntClient.run(AntClient.java:162)
      	at org.nuxeo.build.maven.AntBuildMojo.execute(AntBuildMojo.java:255)

        Attachments

          Activity

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: