g_assert in production code?

Ben Rush ben at ben-rush.net
Tue Oct 1 16:24:10 UTC 2019


I might be missing something fundamental with respect to the use of
g_assert, but it looks as though it's something intended to be built out of
production or "release" code, right?

I ask because I've been encountering (on Windows) a number of strange,
sudden program "crashes" which, upon adding some program-wide exception
trapping code to my server, seems to actually be assert statements
executing and taking down the host process. For example, I was notified of
an RTSP server in production going down and upon looking at the logs, I see
that my trap code generated this stack trace:

at 0x7ff93969c902, with code 80000003 in module
C:\Windows\System32\KERNELBASE.dll, stack:
 ?????, DebugBreak:??????
d:\projects\cerbero\autotools\master\build\sources\windows_x86_64\glib-2.56.1\glib\gutils.c,
g_abort:2566
d:\projects\cerbero\autotools\master\build\sources\windows_x86_64\glib-2.56.1\glib\gtestutils.c,
g_assertion_message:2533
d:\projects\cerbero\autotools\master\build\sources\windows_x86_64\glib-2.56.1\glib\gtestutils.c,
g_assertion_message_expr:2556
d:\projects\cerbero\autotools\master\build\sources\windows_x86_64\gst-plugins-base-1.0-1.15.2\gst-libs\gst\rtsp\gstrtspconnection.c,
gst_rtsp_source_dispatch_write:3899
d:\projects\cerbero\autotools\master\build\sources\windows_x86_64\glib-2.56.1\glib\gmain.c,
g_main_dispatch:3261
d:\projects\cerbero\autotools\master\build\sources\windows_x86_64\glib-2.56.1\glib\gmain.c,
g_main_context_dispatch:3966
d:\projects\cerbero\autotools\master\build\sources\windows_x86_64\glib-2.56.1\glib\gmain.c,
g_main_context_iterate:4036
d:\projects\cerbero\autotools\master\build\sources\windows_x86_64\glib-2.56.1\glib\gmain.c,
g_main_loop_run:4230
d:\projects\cerbero\autotools\master\build\sources\windows_x86_64\gst-rtsp-server-1.0-1.15.2\gst\rtsp-server\rtsp-thread-pool.c,
do_loop:331
d:\projects\cerbero\autotools\master\build\sources\windows_x86_64\glib-2.56.1\glib\gthreadpool.c,
g_thread_pool_thread_proxy:308
d:\projects\cerbero\autotools\master\build\sources\windows_x86_64\glib-2.56.1\glib\gthread.c,
g_thread_proxy:784
d:\projects\cerbero\autotools\master\build\sources\windows_x86_64\glib-2.56.1\glib\gthread-win32.c,
g_thread_win32_proxy:452
?????, o_strcat_s:??????
?????, BaseThreadInitThunk:??????
?????, RtlUserThreadStart:??????

It looks like it makes its way down to g_abort, which sure seems to be
involved in program termination. It's possible this is a red herring and
that I should ignore such things, but my spidey sense is telling me this
assert should be a noop in production code.

Is it possible the Windows build isn't doing this?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20191001/e8ab3a61/attachment.html>


More information about the gstreamer-devel mailing list