activemq-cpp icon indicating copy to clipboard operation
activemq-cpp copied to clipboard

Move timer objects to the end of member list

Open unjello opened this issue 6 years ago • 9 comments

In high CPU load it can happen, that Timer thread wakes up, is swapped out, and when application resumes it does not resume with timer thread, but transport thread, that decides to do failover, destroys InactivityMonitor object. When its members are getting destroyed, they arrive at Timer object that joins, timer thread resumes in writeCheck or readCheck method, only to find out asyncTasks is already destroyed because it comes later in member declaration list so it was destroyed first. Moving Timer object to the end of the list, guarantees that they will be destroyed first, so their threads will get joined and allowed to finish, before the rest of the object is destroyed.

Closes AMQCPP-626

unjello avatar Mar 12 '18 15:03 unjello

Guys. Is there anything that needs to happen, so this PR gets some (any) attention?

unjello avatar Mar 28 '18 18:03 unjello

Just wait and keep patient, or maybe you would like to send an email to the master.

Pingmin avatar Mar 31 '18 13:03 Pingmin

Needing to wait almost three weeks for a patch for a serious, crash-causing, race-condition to receive any attention, doesn't exactly build trust in a library. I have sent 2 emails to dev list, as well as logged JIRA. Not sure what (who?) the "master" is, but I feel like I've done enough. Thank you for the tip tho. I'll just wait and keep being patient.

unjello avatar Mar 31 '18 14:03 unjello

@tabish121

Pingmin avatar Apr 01 '18 10:04 Pingmin

@Pingmin thank you for trying, but after one month with no reaction whatsoever, and more than a year since last release, I should probably come to a conclusion that this project is effectively abandoned.

unjello avatar Apr 12 '18 18:04 unjello

@unjello I don't think so and we don't want to see that. Maybe He is too busy in these months...

Pingmin avatar Apr 15 '18 10:04 Pingmin

Many years later. Any news?

unjello avatar Feb 23 '24 18:02 unjello

Good luck @unjello ! I was about to do a PR to update zlib and get rid of a CVE alert we have. I don't think I'll waste time with that.

sandym avatar Feb 23 '24 22:02 sandym

Hi @unjello @sandym

I'm an ActiveMQ committer and would be able to help modernize. My C++ is a bit rusty, so I'd need an assist. I think first step would be to modernize the tool chain (add git action and jenkins file to get some automated build testing going.

Would either of you be able to assist in PRs for that?

mattrpav avatar Feb 24 '24 00:02 mattrpav