Hi again, I improved the fix a little. There was still one case, which was not covered.
And I found out, that the job in tntnet do not need to be atomic ref counted but simple ref counted is sufficient, which speeds up tntnet in my tests by about 1%. Not much but better than nothing. I'm surprised, that it was that big that I could measure it. Tommi Am 22.09.2013 17:32, schrieb Tommi Mäkitalo: > Hi, > > About a month ago a user reported a crash in tntnet. They have a server > running with ssl and after one or two days, tntnet crashed with a error > message "pthread_mutex_unlock failed": errno 1: Operation not permitted. > > Yesterday I was finally able to reproduce the bug and today I fixed it > and checked the fix in. > > The bug was not related to ssl at all. It was a racing condition The bug > has always been in tntnet. > > The problem was, that when a request arrives, the thread passes the task > for waiting for new connections to a new thread. It may happen, that the > new thread takes it over, accepts a new connection, reads the request > and answers it before the previous thread drops ownership of this new > task. The new thread then releases the job before the old and since the > old thread holds the task longer, it will do the clean up. This clean up > includes unlocking the session scope. But since the new thread locked > the session scope, the old thread is not allowed to release the lock. > The solution is just to drop the ownership of the new job before > releasing the lock of the job queue in the old thread. > > The bug happens only when the client do not use keep alive. Normally a > browser always uses keep alive. This may be the reason, why it has never > been a problem. > > Tommi ------------------------------------------------------------------------------ LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99! 1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint 2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/22/13. http://pubads.g.doubleclick.net/gampad/clk?id=64545871&iu=/4140/ostg.clktrk _______________________________________________ Tntnet-general mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/tntnet-general
