Process Crash Occurs Using Tuxedo tpfree() API With A Pointer That Is Already Released Implicitly By tprealloc()
(Doc ID 2139893.1)
Last updated on MAY 30, 2023
Applies to:
Oracle Tuxedo - Version 12.1.3 and laterInformation in this document applies to any platform.
Symptoms
On Tuxedo 12.1.3: If request Tuxedo buffer is reallocated in another thread, Tuxedo crashes after trying to call Tuxedo API tpfree() the original request buffer which is implicitly freed by Tuxedo API tprealloc().
Tuxedo tprealloc() happened in a different thread, reallocated buffer is freed (0x0x1cb6ad8) but it also tries to free original buffer that was reallocated (0x0x1cb14b8) and then crashes (Tuxedo ubb configuration group/serverid TMS_GROUP/400)
Tuxedo ULOG, with Tuxedo tracing turned on, contains-
134839.834.tuxMachine!MULTI.....: TRACE:tr: trace("*:ulog:dye")
134839.834.tuxMachine!MULTI.....: TRACE:tr: dye
134839.835.tuxMachine!MULTI.....: TRACE:at: { tprealloc(0x0x1cb14b8, 16384)
134839.835.tuxMachine!MULTI.....: TRACE:at: } tprealloc = 0x0x1cb6ad8
134839.836.tuxMachine!MULTI.....: TRACE:at: { tpreturn(2, 0, 0x0x1cb6ad8, 0, 0x0)
134839.836.tuxMachine!MULTI.....: TRACE:ia: { tpfree(0x0x1cb6ad8)
134839.836.tuxMachine!MULTI.....: TRACE:ia: } tpfree
134839.836.tuxMachine!MULTI.....: TRACE:at: } tpreturn [long jump]
134839.836.tuxMachine!MULTI.....: TRACE:at: } tpservice
134839.836.tuxMachine!MULTI.....: TRACE:at: { tpfree(0x0x1cb14b8)
134854.549.tuxMachine!TMSYSEVT.....: TRACE:ia: { tpservice({"..TMSYSPOST", 0x4, 0x0x1d026b8, 740, 0, 2147483648, {1458733712, 0, 56}})
134854.550.tuxMachine!TMSYSEVT.....: TRACE:ia: { tptypes(0x0x1d026b8, 0x0x7fff6f055b80, 0x0x7fff6f055b60)
134854.550.tuxMachine!TMSYSEVT.....: TRACE:ia: } tptypes = 4096
134854.550.tuxMachine!TMSYSEVT.....: TRACE:ia: { tpreturn(2, 0, 0x0x1d026b8, 4096, 0x0)
134854.550.tuxMachine!TMSYSEVT.....: TRACE:ia: } tpreturn [long jump]
134854.550.tuxMachine!TMSYSEVT.....: TRACE:ia: } tpservice
134857.437.tuxMachine!BBL....: LIBTUX_CAT:541: WARN: Server TMS_GROUP/400 terminated
Stack trace of core:
#0 0x00007f781ea83cfb in _tmfmsg_free () from {TUX_DIR}/lib/libtux.so
#1 0x00007f781ea02ff4 in _tpfree_internal () from {TUX_DIR}/lib/libtux.so
#2 0x00007f781ea03236 in tpfree () from {TUX_DIR}/lib/libtux.so
#3 0x00007f781ea735aa in _tmsvrthrmain () from {TUX_DIR}/lib/libtux.so
#4 0x00007f781d879dc5 in start_thread () from /lib64/libpthread.so.0
#5 0x00007f781d5aa17d in clone () from /lib64/libc.so.6
Changes
Cause
To view full details, sign in with your My Oracle Support account. |
|
Don't have a My Oracle Support account? Click to get started! |
In this Document
Symptoms |
Changes |
Cause |
Solution |
References |