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