[ASTERISK-165] res_calendar_icalendar: SEGV during module refresh
This segfault occurs on proliant, but not on other Debian 12 systems with the same version of libical, interestingly. Asterisk version does not matter.
Not reporting this upstream for now, since this isn't actionable at the moment since it fails to reproduce on any system besides proliant.
# ls /usr/lib/x86_64-linux-gnu/libical.so*
/usr/lib/x86_64-linux-gnu/libical.so /usr/lib/x86_64-linux-gnu/libical.so.3 /usr/lib/x86_64-linux-gnu/libical.so.3.0.16
!@!@!@! thread1.txt !@!@!@!
$1 = {si_signo = 11, si_errno = 0, si_code = 1, _sifields = {_pad = {84, 10999, 0 <repeats 26 times>}, _kill = {si_pid = 84, si_uid = 10999}, _timer = {si_tid = 84, si_overrun = 10999, si_sigval = {sival_int = 0, sival_ptr = 0x0}}, _rt = {si_pid = 84, si_uid = 10999, si_sigval = {sival_int = 0, sival_ptr = 0x0}}, _sigchld = {si_pid = 84, si_uid = 10999, si_status = 0, si_utime = 0, si_stime = 0}, _sigfault = {si_addr = 0x2af700000054, _addr_lsb = 0, _addr_bnd = {_lower = 0x0, _upper = 0x0}}, _sigpoll = {si_band = 47240345288788, si_fd = 0}, _sigsys = {_call_addr = 0x2af700000054, _syscall = 0, _arch = 0}}}
Signal Stop Print Pass to program Description
SIGSEGV Yes Yes Yes Segmentation fault
Thread 1 (Thread 0x7fac3177e6c0 (LWP 104716)):
#0 0x00007fac30514fe3 in icu_72::LocaleCacheKey<icu_72::SharedCalendar>::equals(icu_72::CacheKeyBase const&) const () from /lib/x86_64-linux-gnu/libicui18n.so.72
No symbol table info available.
#1 0x00007fac52647587 in ?? () from /lib/x86_64-linux-gnu/libicuuc.so.72
No symbol table info available.
#2 0x00007fac52647edf in uhash_find_72 () from /lib/x86_64-linux-gnu/libicuuc.so.72
No symbol table info available.
#3 0x00007fac5265eb71 in icu_72::UnifiedCache::_poll(icu_72::CacheKeyBase const&, icu_72::SharedObject const*&, UErrorCode&) const () from /lib/x86_64-linux-gnu/libicuuc.so.72
No symbol table info available.
#4 0x00007fac5265ec5f in icu_72::UnifiedCache::_get(icu_72::CacheKeyBase const&, icu_72::SharedObject const*&, void const*, UErrorCode&) const () from /lib/x86_64-linux-gnu/libicuuc.so.72
No symbol table info available.
#5 0x00007fac3051599d in void icu_72::UnifiedCache::getByLocale<icu_72::SharedCalendar>(icu_72::Locale const&, icu_72::SharedCalendar const*&, UErrorCode&) () from /lib/x86_64-linux-gnu/libicui18n.so.72
No symbol table info available.
#6 0x00007fac305127c3 in icu_72::Calendar::createInstance(icu_72::TimeZone*, icu_72::Locale const&, UErrorCode&) () from /lib/x86_64-linux-gnu/libicui18n.so.72
No symbol table info available.
#7 0x00007fac30655b25 in ucal_open_72 () from /lib/x86_64-linux-gnu/libicui18n.so.72
No symbol table info available.
#8 0x00007fac32af2ff5 in icalrecur_iterator_new () from /lib/x86_64-linux-gnu/libical.so.3
No symbol table info available.
#9 0x00007fac32af8c80 in icaltimezone_expand_vtimezone () from /lib/x86_64-linux-gnu/libical.so.3
No symbol table info available.
#10 0x00007fac32af9132 in ?? () from /lib/x86_64-linux-gnu/libical.so.3
No symbol table info available.
#11 0x00007fac32af9267 in icaltimezone_get_utc_offset () from /lib/x86_64-linux-gnu/libical.so.3
No symbol table info available.
#12 0x00007fac32af96d0 in icaltimezone_convert_time () from /lib/x86_64-linux-gnu/libical.so.3
No symbol table info available.
#13 0x00007fac32af46b6 in icaltime_as_timet_with_zone () from /lib/x86_64-linux-gnu/libical.so.3
No symbol table info available.
#14 0x00007fac32af4fdf in icaltime_span_new () from /lib/x86_64-linux-gnu/libical.so.3
No symbol table info available.
#15 0x00007fac32ae8a15 in icalcomponent_foreach_recurrence () from /lib/x86_64-linux-gnu/libical.so.3
No symbol table info available.
#16 0x00007fac32c2405b in icalendar_update_events (pvt=0x7fac40006ae0) at res_calendar_icalendar.c:383
start_time = {year = 2025, month = 9, day = 18, hour = 15, minute = 46, second = 57, is_date = 0, is_daylight = 0, zone = 0x7fac32b2b140}
end_time = {year = 2025, month = 9, day = 19, hour = 1, minute = 46, second = 57, is_date = 0, is_daylight = 0, zone = 0x7fac32b2b140}
iter = 0x7fac400085a0
__FUNCTION__ = "icalendar_update_events"
#17 0x00007fac32c24c4e in ical_load_calendar (void_data=0x7fac3c00a720) at res_calendar_icalendar.c:486
pvt = 0x7fac40006ae0
cfg = 0x55793d5bfe30
v = 0x0
cal = 0x7fac3c00a720
refreshlock = {mutex = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 1, __spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '' <repeats 16 times>, "", '' <repeats 22 times>, __align = 0}, track = 0x0, flags = {tracking = 1, setup = 0}}
__FUNCTION__ = "ical_load_calendar"
__PRETTY_FUNCTION__ = "ical_load_calendar"
#18 0x000055793bf98797 in dummy_start (data=0x7fac3c00abf0) at utils.c:1643
__cancel_buf = {__cancel_jmp_buf = {{__cancel_jmp_buf = {140377541043904, 436036928800274283, -256, 0, 140375964154816, 140377540534272, 436036928858994539, 6027795810913335147}, __mask_was_saved = 0}}, __pad = {0x7fac3177de70, 0x0, 0x7ffdfa58bd20, 0x7fac31702000}}
__cancel_routine = 0x55793bdbeaba <ast_unregister_thread>
__cancel_arg = 0x7fac3177e6c0
__not_first_call = 0
ret = 0x7fabfc002890
a = {start_routine = 0x7fac32c240b1 <ical_load_calendar>, data = 0x7fac3c00a720, name = 0x7fac3c00acb0 "cal->tech->load_calendar started at [ 518] res_calendar.c build_calendar()"}
lock_info = 0x7fac40004540
mutex_attr = {__size = "", __align = 1}
__PRETTY_FUNCTION__ = "dummy_start"
#19 0x00007fac527c71f5 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
ret = <optimized out>
pd = <optimized out>
out = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140377541043904, -480337419427137685, -256, 0, 140375964154816, 140377540534272, 436036928806565739, 436245882712995691}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
#20 0x00007fac528478dc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
No locals.Comments
You must be logged in to leave a comment.