[ https://issues.apache.org/jira/browse/PROTON-1674?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Justin Ross reassigned PROTON-1674: ----------------------------------- Assignee: Justin Ross (was: Cliff Jansen) > [cpp] Container does no longer wait for planned scheduled tasks > --------------------------------------------------------------- > > Key: PROTON-1674 > URL: https://issues.apache.org/jira/browse/PROTON-1674 > Project: Qpid Proton > Issue Type: Bug > Components: cpp-binding > Affects Versions: proton-c-0.18.1 > Reporter: Jiri Daněk > Assignee: Justin Ross > Priority: Major > Labels: test > > In the following test, what now seems to be happening is that the container > exits before the scheduled task is executed. Therefore, no exception is > thrown. > {noformat} > class MyException : public std::exception {}; > struct exception_from_scheduled_tester : public proton::messaging_handler { > proton::listener listener; > test_port port; > bool should_stop; > explicit exception_from_scheduled_tester(bool should_stop) : > should_stop(should_stop) {} > void on_container_start(proton::container& c) PN_CPP_OVERRIDE { > listener = c.listen(port.url()); > c.connect(port.url("localhost")); > c.schedule(proton::duration(250), [this]() { > throw MyException(); > }); > if (should_stop) { > c.stop(); > } > } > }; > int test_container_scheduled_throws_exception() { > exception_from_scheduled_tester t(/*should_stop*/ true); // test would > pass if this is set to false > proton::container c(t); > try { > c.run(); > FAIL("expected exception"); > } catch (proton::error &e) { > // expected > } > // t.listener.stop(); // uh, why am I not supposed to call this here? > return 0; > } > {noformat} > According to git bisect, the commit that changed the behavior (flipped the > test from pass to fail) is > {noformat} > % git bisect bad > 6e41df90023cfc06f4bc9ad7b972e9b39284980a is the first bad commit > commit 6e41df90023cfc06f4bc9ad7b972e9b39284980a > Author: Alan Conway <acon...@redhat.com> > Date: Mon Oct 23 17:24:10 2017 +0100 > PROTON-1628: [cpp] Stopping container in on_container_start will hang > > Check if already stopping before entering the event loop in > container::impl::thread() > :040000 040000 ffad13af832b4c8c9b15a75a146ba1cec302492f > 4bde1331bba40d477eefa383d78a95d49a291a90 M proton-c > {noformat} -- This message was sent by Atlassian JIRA (v6.4.14#64029) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org