Uploaded image for project: 'NetarchiveSuite'
  1. NetarchiveSuite
  2. NAS-1860

Killing the Heritrix process manually with kill -9 is not handled by the default Heritrix controller

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • Major
    • None
    • 3.14.0, 3.16.0
    • None
    • Confident

    Description

      Before (maybe a feature in the previously used JMXHeritrixController) when killing the heritrix proces manually from the command line (kill -9'), the HarvestController (HeritrixController) discovered that the processen was dead and set the harvestjob as 'aborted'.
      Trying to terminate a harvest in this way fails miserably. The HarvestController'en just throws a lot of error messages, while the harvest is still in state 'Started'.

      It seems that the logic that talks to heritix is broken. It should just accept the fact, that Heritrix process has gone, and start the postprocessing.

      The error by the way:

      
      Apr 28, 2011 10:56:19 AM dk.netarkivet.harvester.harvesting.controller.BnfHeritrixController closeJMXConnection
      SEVERE: JMX error while closing connection to Heritrix
      java.rmi.ConnectException: Connection refused to host: 130.226.228.8; nested exception is: 
              java.net.ConnectException: Connection refused
              at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:601)
      More... 
              at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198)
              at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
              at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:110)
              at com.sun.jmx.remote.internal.PRef.invoke(Unknown Source)
              at javax.management.remote.rmi.RMIConnectionImpl_Stub.close(Unknown Source)
              at javax.management.remote.rmi.RMIConnector.close(RMIConnector.java:466)
              at javax.management.remote.rmi.RMIConnector.close(RMIConnector.java:406)
              at dk.netarkivet.harvester.harvesting.controller.BnfHeritrixController.closeJMXConnection(BnfHeritrixController.java:835)
              at dk.netarkivet.harvester.harvesting.controller.BnfHeritrixController.getMBeanServerConnection(BnfHeritrixController.java:860)
              at dk.netarkivet.harvester.harvesting.controller.BnfHeritrixController.jmxCall(BnfHeritrixController.java:769)
              at dk.netarkivet.harvester.harvesting.controller.BnfHeritrixController.getAttributes(BnfHeritrixController.java:731)
              at dk.netarkivet.harvester.harvesting.controller.BnfHeritrixController.getMBeanAttributes(BnfHeritrixController.java:678)
              at dk.netarkivet.harvester.harvesting.controller.BnfHeritrixController.getCrawlProgress(BnfHeritrixController.java:350)
              at dk.netarkivet.harvester.harvesting.controller.BnfHeritrixLauncher$CrawlControl.run(BnfHeritrixLauncher.java:66)
              at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
              at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
              at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
              at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
              at java.lang.Thread.run(Thread.java:619)
      Caused by: java.net.ConnectException: Connection refused
              at java.net.PlainSocketImpl.socketConnect(Native Method)
              at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
              at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
              at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
              at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
              at java.net.Socket.connect(Socket.java:519)
              at java.net.Socket.connect(Socket.java:469)
              at java.net.Socket.<init>(Socket.java:366)
              at java.net.Socket.<init>(Socket.java:180)
              at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
              at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
              at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:595)
              ... 23 more
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            svc Søren Vejrup Carlsen (Inactive)
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - 14h
                14h
                Remaining:
                Remaining Estimate - 14h
                14h
                Logged:
                Time Spent - Not Specified
                Not Specified