CTRL+C not working properly when using "activemq console" on cygwin
-------------------------------------------------------------------
Key: AMQ-3091
URL: https://issues.apache.org/jira/browse/AMQ-3091
Project: ActiveMQ
Issue Type: Bug
Components: Broker
Affects Versions: 5.4.1
Environment: ActiveMQ 5.4.1 on cygwin/Windows
Reporter: Torsten Mielke
When running "activemq console", the shell script invokes "sh -c ..." to start
ActiveMQ in console mode. This prints out
This does not work properly when running on cygwin/Windows, because when
stopping ActiveMQ using CTRL+C, it stops the entire shell that as started,
which does not allow ActiveMQ to shut down gracefully. The JVM running ActiveMQ
gets killed brute forcefully.
Trying to restart ActiveMQ thereafter results in a corrupted message store and
this error being printed [1].
IMHO, this is a problem in the way how the cygwin shell handles CTRL+C, it does
not seem to pass on the signal to the JVM it runs.
{code}
2010-12-16 10:11:30,251 INFO main org.apache.activemq.broker.BrokerService -
Using Persistence Adapter:
KahaDBPersistenceAdapter[C:\AMQ\apache-activemq-5.4.1\data\kahadb]
2010-12-16 10:11:34,720 INFO main
org.apache.activemq.store.kahadb.MessageDatabase - KahaDB is version 2
2010-12-16 10:11:35,095 INFO main
org.apache.activemq.store.kahadb.MessageDatabase - Recovering from the journal
...
2010-12-16 10:11:35,095 INFO main
org.apache.activemq.store.kahadb.MessageDatabase - Recovery replayed 2
operations from the journal in 0.344 seconds.
2010-12-16 10:11:35,251 INFO main org.apache.activemq.broker.BrokerService -
ActiveMQ 5.4.1 JMS Message Broker (localhost) is starting
2010-12-16 10:11:35,251 INFO main org.apache.activemq.broker.BrokerService -
For help or more information please see: http://activemq.apache.org/
2010-12-16 10:11:35,876 INFO main
org.apache.activemq.broker.scheduler.SchedulerBroker - Scheduler using
directory: C:\AMQ\apache-activemq-5.4.1\data\localhost\scheduler
2010-12-16 10:11:37,360 ERROR main org.apache.activemq.broker.BrokerService -
Failed to start ActiveMQ JMS Message Broker. Reason: java.io.EOFException:
Chunk stream does not exist at page: 0
java.io.EOFException: Chunk stream does not exist at page: 0
at org.apache.kahadb.page.Transaction$2.readPage(Transaction.java:454)
at org.apache.kahadb.page.Transaction$2.<init>(Transaction.java:431)
at
org.apache.kahadb.page.Transaction.openInputStream(Transaction.java:428)
at org.apache.kahadb.page.Transaction.load(Transaction.java:404)
at org.apache.kahadb.page.Transaction.load(Transaction.java:361)
at
org.apache.activemq.broker.scheduler.JobSchedulerStore$3.execute(JobSchedulerStore.java:250)
at org.apache.kahadb.page.Transaction.execute(Transaction.java:728)
at
org.apache.activemq.broker.scheduler.JobSchedulerStore.doStart(JobSchedulerStore.java:239)
at org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:53)
at
org.apache.activemq.broker.scheduler.SchedulerBroker.getStore(SchedulerBroker.java:198)
at
org.apache.activemq.broker.scheduler.SchedulerBroker.getInternalScheduler(SchedulerBroker.java:185)
at
org.apache.activemq.broker.scheduler.SchedulerBroker.start(SchedulerBroker.java:85)
at org.apache.activemq.broker.BrokerFilter.start(BrokerFilter.java:157)
at org.apache.activemq.broker.BrokerFilter.start(BrokerFilter.java:157)
at
org.apache.activemq.broker.TransactionBroker.start(TransactionBroker.java:112)
at
org.apache.activemq.broker.BrokerService$3.start(BrokerService.java:1788)
at
org.apache.activemq.broker.BrokerService.start(BrokerService.java:496)
at
org.apache.activemq.xbean.XBeanBrokerService.afterPropertiesSet(XBeanBrokerService.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1536)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1409)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:574)
at
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
at
org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(ResourceXmlApplicationContext.java:64)
at
org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(ResourceXmlApplicationContext.java:52)
at
org.apache.activemq.xbean.XBeanBrokerFactory.createApplicationContext(XBeanBrokerFactory.java:96)
at
org.apache.activemq.xbean.XBeanBrokerFactory.createBroker(XBeanBrokerFactory.java:52)
at
org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:71)
at
org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:54)
at
org.apache.activemq.console.command.StartCommand.startBroker(StartCommand.java:115)
at
org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:74)
at
org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)
at
org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:143)
at
org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)
at
org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.activemq.console.Main.runTaskClass(Main.java:251)
at org.apache.activemq.console.Main.main(Main.java:107)
2010-12-16 10:11:37,407 INFO main org.apache.activemq.broker.BrokerService -
ActiveMQ Message Broker (localhost, null) is shutting down
2010-12-16 10:11:37,407 INFO main org.apache.activemq.broker.TransportConnector
- Connector openwire Stopped
2010-12-16 10:11:37,720 INFO main
org.apache.activemq.broker.scheduler.JobSchedulerStore -
JobSchedulerStore:C:\AMQ\apache-activemq-5.4.1\data\localhost\scheduler stopped
2010-12-16 10:11:37,720 INFO main
org.apache.activemq.store.kahadb.plist.PListStore -
PListStore:C:\AMQ\apache-activemq-5.4.1\data\localhost\tmp_storage stopped
2010-12-16 10:11:37,720 INFO main org.apache.activemq.store.kahadb.KahaDBStore
- Stopping async queue tasks
2010-12-16 10:11:37,720 INFO main org.apache.activemq.store.kahadb.KahaDBStore
- Stopping async topic tasks
2010-12-16 10:11:37,720 INFO main org.apache.activemq.store.kahadb.KahaDBStore
- Stopped KahaDB
2010-12-16 10:11:38,235 INFO main org.apache.activemq.broker.BrokerService -
ActiveMQ JMS Message Broker (localhost, null) stopped
{code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.