Thread: [Cppcms-users] Failing assertion in asynchronous application
Brought to you by:
artyom-beilis
From: Julian P. <ju...@wh...> - 2010-10-20 19:39:19
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hallo, today I discovered an assertion in booster::shared_ptr that fails under specific circumstances in asynchronous applications. If a client (browser) closes the current connection while its request is still served and release_context() is called after the connection had been closed already, the server exits with the following error message: iweb2.fcgi: booster/booster/shared_ptr.h:305: T* booster::shared_ptr<T>::operator->() const [with T = cppcms::impl::cgi::connection]: Assertion `px != 0' failed. Do I have to perform any check before I call release_context() or is this considered to be a bug? Thanks, Julian -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQIcBAEBAgAGBQJMv0VeAAoJENidYKvYQHlQ8ZIP/jRmzk3USLq1XcKl+NTlYk3p 8ODzLZtOt5Fh7H+PJPwWW2jN7g/ZI+V+zA6PAWa5szSwRbJLrmrI2heEtPRZ8M+a GbIWHBM52zmX1xfkT3Dnamxl8Wq82ZFA/NzTI3rFw1GKEy6oa9d97zHdd8MVysXZ 6N2ILEhTyDZELsJnsOj4kT/7PTuZIpVPoDgn9jwgNeHroJFcAH251zCIllbI0y5V Uv5youqdYxlabYxifwhoQOACDg3MWHaytBn6Fw8g84Tv5u7ebN6vnfDWL+m2rEWm EvUpFHoCHfnxAyh1010Zf5oNMFyu+qrEzND/CLs9CF3cCHAWPhxUkDmHmTDIy5rn TaBCMVZVNZ2JmO84rzXWluwTfj/cFVR1b9W8iDUri2Dy+hXyGePmhVpMgWVc5SH5 Wh2cv8IoQMfg8Pc4GkfV0dTNGAOaRkyXhxNrVpmA3Sx9RmiZZ0sjni5eKhVk2I0D +3IZ1X5lc5373NuMQTfl6CoQcUkbJ9JqyhskLrakU3YrHGngsk9FVdDbC7NiqFWW 42wPx6kNlWfX16VTEm9L+vyoDW/dLUWrdEdOrovKob0lM310m/7oiG/OxR8qzFeS 9cejAv7y/2mePBe3vyhTN/6DmKyokyjTIiXWgErqrAOAWaq/ph3zFQ64/YaJva0Y ezoQ4CeSBf33XgmPODBt =WGr3 -----END PGP SIGNATURE----- |
From: Artyom <art...@ya...> - 2010-10-20 21:23:11
|
> > today I discovered an assertion in booster::shared_ptr that fails under > specific circumstances in asynchronous applications. > If a client (browser) closes the current connection while its request is > still served and release_context() is called after the connection had > been closed already, the server exits with the following error message: Can you give me the backtrace? > > iweb2.fcgi: booster/booster/shared_ptr.h:305: T* > booster::shared_ptr<T>::operator->() const [with T = > cppcms::impl::cgi::connection]: Assertion `px != 0' failed. > > Do I have to perform any check before I call release_context() or is > this considered to be a bug? It may be the bug that was fixed in trunk, however trunk not really stable at this point, so backtrace will help me to understand if this is it. Artyom |
From: Julian P. <ju...@wh...> - 2010-10-20 22:07:19
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 > > Can you give me the backtrace? > > It may be the bug that was fixed in trunk, however trunk not really stable > at this point, so backtrace will help me to understand if this is it. > The problem is: There is no backtrace. I ran the server with valgrind, and after the assertion failure, the server exits without a backtrace. Should I perhaps try with gdb instead of valgrind? -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQIcBAEBAgAGBQJMv2gPAAoJENidYKvYQHlQldYP/1cAD19YM/YILH+qodCbofi8 fF/JTOKEbLedqRJlVltzKuzmMArAciiNAZxY4Dp8m7sH4QfDWCsLRLkBeH8PBHtI YiMf+MF8ciX56VqSjW6eHSNnjTqpddm2o1QsyrT3EyUKRjSp1dADnqgg4ga4EcSn vwPz9az+4beIhPj+0rOZaMNf5yeq74vsSlKKBrvYIpTuUyGfONPvmGnG2H9ytsr7 pqyVfcrCS0SazmkDVxiQorRXg+A3bY5WXd/Jv5Zun9azhSxgr+L18P5yYLmeLkre AIEBuOsQ/nr7BsWwZeyPL5obygY2nDjcqettZMDQHozvuvw9FpZ6mQBmXwJMNQ2K 0vkK77yLXD2LTmf/cYQ5b1i1TK2Wc0NPIvM8CZ8hGplQf7mmDa9aF7gcIb9sSi60 gbl4Bg5e8jlAcmWb3+JKxPT/g4QKp+0iFl4j6/dDEMckj7SceQaqdk/jih50UCPM YyecVCniKtax+5mGEweA7IE1gyeQcSy8pX0ey7BiuKwyHupiFpOeBH1gAmF8Ed0Q tN5dBQAMw3jkIJLcvJUs1wfI9QrSLKQh0kirbEf9479niPLqG1y/DHvcQiQtX1i3 O/qhmNUcwN7rDRkC2SlqsVdhv1017V/2LFxiKXcOVC8Mzxot/tfjZzLMmhgAv+0r ubMju+eym6+LKoSiVcl0 =GRU3 -----END PGP SIGNATURE----- |
From: Artyom <art...@ya...> - 2010-10-21 05:11:26
|
> > The problem is: There is no backtrace. I ran the server with valgrind, > and after the assertion failure, the server exits without a backtrace. > Should I perhaps try with gdb instead of valgrind? Yes, run program in gdb, and when assert happens just print > bt And see the trace. Arryom > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2.0.16 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ > > iQIcBAEBAgAGBQJMv2gPAAoJENidYKvYQHlQldYP/1cAD19YM/YILH+qodCbofi8 > fF/JTOKEbLedqRJlVltzKuzmMArAciiNAZxY4Dp8m7sH4QfDWCsLRLkBeH8PBHtI > YiMf+MF8ciX56VqSjW6eHSNnjTqpddm2o1QsyrT3EyUKRjSp1dADnqgg4ga4EcSn > vwPz9az+4beIhPj+0rOZaMNf5yeq74vsSlKKBrvYIpTuUyGfONPvmGnG2H9ytsr7 > pqyVfcrCS0SazmkDVxiQorRXg+A3bY5WXd/Jv5Zun9azhSxgr+L18P5yYLmeLkre > AIEBuOsQ/nr7BsWwZeyPL5obygY2nDjcqettZMDQHozvuvw9FpZ6mQBmXwJMNQ2K > 0vkK77yLXD2LTmf/cYQ5b1i1TK2Wc0NPIvM8CZ8hGplQf7mmDa9aF7gcIb9sSi60 > gbl4Bg5e8jlAcmWb3+JKxPT/g4QKp+0iFl4j6/dDEMckj7SceQaqdk/jih50UCPM > YyecVCniKtax+5mGEweA7IE1gyeQcSy8pX0ey7BiuKwyHupiFpOeBH1gAmF8Ed0Q > tN5dBQAMw3jkIJLcvJUs1wfI9QrSLKQh0kirbEf9479niPLqG1y/DHvcQiQtX1i3 > O/qhmNUcwN7rDRkC2SlqsVdhv1017V/2LFxiKXcOVC8Mzxot/tfjZzLMmhgAv+0r > ubMju+eym6+LKoSiVcl0 > =GRU3 > -----END PGP SIGNATURE----- > > ------------------------------------------------------------------------------ > Nokia and AT&T present the 2010 Calling All Innovators-North America contest > Create new apps & games for the Nokia N8 for consumers in U.S. and Canada > $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing > Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store > http://p.sf.net/sfu/nokia-dev2dev > _______________________________________________ > Cppcms-users mailing list > Cpp...@li... > https://lists.sourceforge.net/lists/listinfo/cppcms-users > |