Issue 113115 - vcl: psp::SystemQueueInfo::run SEGV during exit
Summary: vcl: psp::SystemQueueInfo::run SEGV during exit
Status: CLOSED FIXED
Alias: None
Product: gsl
Classification: Code
Component: code (show other issues)
Version: DEV300m84
Hardware: All All
: P3 Trivial (vote)
Target Milestone: 3.4.0
Assignee: philipp.lohmann
QA Contact: issues@gsl
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-07-13 09:51 UTC by Stephan Bergmann
Modified: 2010-11-10 10:55 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description Stephan Bergmann 2010-07-13 09:51:38 UTC
At least on DEV300_m84 based CWS sb123 under unxsoli4 non-pro, terminating an
soffice.bin instance at the end of a very short-running test
(comphelper/qa/complex/comphelper/SequenceOutputStreamUnitTest.java), it crashed
with

t@8 (l@8) terminated by signal SEGV (access to address exceeded protections)
0xfec960b3: rtl_string_newFromStr+0x004f:       movb     %al,(%ecx)
(dbx) where
current thread: t@8
=>[1] rtl_string_newFromStr(0xf14eeb28, 0xf14eeb40, 0xfefa0c40, 0xfd6b5349), at
0xfec960b3
  [2] psp::SystemQueueInfo::run(0xf1858f70), at 0xfd6b54f1
  [3] threadFunc(0xf1858f70, 0xf14eefb0, 0xf14eefd8, 0xf14eefb0), at 0xfd6b8bc5
  [4] osl_thread_start_Impl(0x847f8c8), at 0xfec7ba4f
  [5] _thr_setup(0xfeab3a00), at 0xfef271c0
  [6] _lwp_start(0xfef9fcd4, 0x18, 0x0, 0xfd72e264, 0xfef9fcd4, 0x8a45bec), at
0xfef274b0
(dbx) where t@1
current thread: t@1
=>[1] clear_lockbyte(0xfec01354), at 0xfef1ec9c
  [2] mutex_unlock_queue(0xfec01348, 0x0), at 0xfef200f8
  [3] __mutex_unlock(0xfec01348, 0x0, 0xfee3f7b0, 0xfecac6ba), at 0xfef21265
  [4] rtl_cache_slab_free(0xfec01300, 0xf6a438e4, 0x80453c4, 0xfecac862), at
0xfecac7c0
  [5] rtl_cache_magazine_clear(0xfec01300, 0xf4b2ad9c), at 0xfecac89d
  [6] rtl_cache_deactivate(0xfec01300), at 0xfecad20b
  [7] rtl_cache_destroy(0xfec01300, 0x0, 0x2000, 0xfecabb3a), at 0xfecad547
  [8] rtl_memory_fini(0xfeffb818, 0xf1ec06e4, 0xfefc0210, 0x8045488, 0xfefd4de1,
0xfeffdd98), at 0xfecabba4
  [9] _fini(0xfeffdd98, 0xfeffb28c, 0xfeffb818, 0x0, 0xfecb758c, 0x80454a4), at
0xfecb75df
  [10] call_fini(0xfeffb28c, 0xf1ec0550), at 0xfefd4de1
  [11] atexit_fini(0x80457c8, 0x80454a4, 0xfef9d000, 0xfefa2e40, 0x80454dc,
0xfeea4d02), at 0xfefd4f70
  [12] _exithandle(0xfeffb818, 0x8050a56, 0x0, 0x80509c0, 0x8050bf0,
0xfefd4f14), at 0xfeeb2461
  [13] exit(0x7, 0x8045830, 0x8045898, 0x80458a7, 0x80458bb, 0x80458c6), at
0xfeea4d02
Comment 1 philipp.lohmann 2010-07-13 15:15:04 UTC
meaning that runner thread needs to be caught at shutdown. Currently that thread
is not terminated and the owning object leaked, that is not good anyway.
Basically this comes from history - there were systems on which that thread (and
the equivalent thread for CUPS systems) never returned (which would block
shutdown this way).

But that is mostly history and not a reason anymore to not shutdown cleanly.
Comment 2 philipp.lohmann 2010-07-14 10:21:31 UTC
psp::SystemQueueInfo will now be joined during shutdown.

fixed in CWS sb123
Comment 3 philipp.lohmann 2010-10-06 18:09:09 UTC
v
Comment 4 philipp.lohmann 2010-11-10 10:55:07 UTC
integrated in DEV300m90, closing