[ASTERISK-68] res_pjsip_sca: Segfaults on startup with SCA

PHREAKSCRIPT-66
dahdi_vpmadt032_loader.o: unannotated intra-function call
ASTERISK-151
ast_tls_cert: Expiration days needs to be configurable
DAHLIN-12
oct612x, wct4xxp: Compilation failure on next kernel
PHREAKSCRIPT-20
dsp.c: coin DSP patch breaks faxing
LBBS-13
pty.c: Attempt to lock previously destroyed mutex
ASTERISK-82
app_queue: Allow queue strategy to be manipulated externally
SLACK-7
Add support for detecting messages posted via workflow
ASTERISK-122
res_pjsip_device_features: Excessive refcount on endpoint object
ASTERISK-149
sig_analog: Winks from dialplan don't propagate onto DAHDI channels
LBBS-102
mod_smtp_filter: Received header no longer has 'for' recipient included
LBBS-80
mod_mimeparse: Occasional segfault when running tests
LBBS-98
net_smtp: Fix message processing actions being skipped in some cases
LBBS-86
Deadlock on internal lock mutex
PHREAKNET-54
Fix trunking to Telstar
DAHTOOL-5
Disabling span auto-assignment implodes kernel
PHREAKSCRIPT-71
Add PolycomPush application
ASTERISK-148
sig_analog: fgccamamf inserting "A" at the end of dialed number
PHREAKSCRIPT-36
app_audichron: Tone not working after announcements
PHREAKNET-6
Verification flags international calls
PHREAKSCRIPT-56
DAHDI Tools: Apply unmerged patches
ASTERISK-124
app_mixmonitor: Allow cancelling in-progress recording/recipients
DAHTOOL-4
dahdi_genconf: Hangs when run initially after span assignment
PHREAKSCRIPT-67
Add rate limiting application
ASTERISK-93
chan_dahdi: DSP optimizations
LBBS-31
mod_sieve: Major Sieve filtering overhaul and improvements
PHREAKNET-34
Pat Fleet prompts
LBBS-16
io_compress: Occasional memory corruption on shutdown
CAMI-1
Action Originate Returns -1
PHREAKSCRIPT-53
app_george: Cancel in-progress recording if nobody said anything
ASTERISK-142
res_pjsip_caller_id: P-Charge-Info should be used for ANI
ASTERISK-146
res_agi: callingani2 is not formatted as 2 digits
DOCS-3
verify.conf: Boilerplate uses hardcoded paths for astkeydir
LBBS-96
pty: CR NUL is sometimes split up, leaking to flaky test
ASTERISK-100
chan_dahdi: PRI lock held at module unload
ASTERISK-143
func_sysinfo: Add options to retrieve current verbose/debug levels
ASTERISK-150
func_curl: Add CURLOPT option to allow digest auth
ASTERISK-109
voicemail.conf.sample: Clarify misnamed option behavior
WSSMAIL-3
Message listing missing recipient for some messages
ASTERISK-137
sig_analog: Add alternate dial pulse scheme support
LBBS-65
net_smtp: Allow internal trusted hosts to be exempt from protocol violation checks
ASTERISK-102
app_voicemail: Play RDNIS if present when listening to envelope
DAHLIN-4
Improve manual span assignment process
ASTERISK-81
format_lame: MP3 read and write with LAME library
ASTERISK-20
app_meetme: Update or remove removal version
ASTERISK-23
logging: Update log levels
ASTERISK-59
chan_dahdi: Remove stripmsd
ASTERISK-49
Remove all deprecated stuff
ASTERISK-68
res_pjsip_sca: Segfaults on startup with SCA
ASTERISK-88
chan_dahdi: Add ADSI on-hook download support
ASTERISK-83
res_pjsip_device_features: Add forwarding and DND synchronization
ASTERISK-19
chan_dahdi: Remove sig_analog paths
ASTERISK-144
chan_pjsip: Add support for directrtpsetup
PHREAKSCRIPT-65
wanpipe: wanpipe modules fail to load
DAHLIN-9
No rule to make target 'vpmadt032_loader/vpmadt032_x86_64.o'
ASTERISK-130
Verify that res_xmpp can compile and be used
LBBS-64
mod_operator: Crash with more than 64 options?
ASTERISK-71
app_if: ElseIf executed even if If is true
PHREAKNET-42
Provisioning fails for lines with certain features
PHREAKNET-40
Recent Change provisioning bug increments device name by 1
LBBS-70
mod_smtp_delivery_external: Use SRS for externally forwarded messages
PHREAKNET-52
Cisco end of CSR signing support
DAHLIN-7
Mega-issue to upstream out-of-tree DAHDI patches
ASTERISK-97
func_groupcount: Add group vars
PHREAKNET-35
TSPS improvements
PHREAKNET-23
Wakeup calls not dialling at scheduled time
ASTERISK-101
func_tonedetect: 2600 Hz detection not working or suboptimal
ASTERISK-147
res_smdi: Allow Asterisk to be the SMDI server
LBBS-6
Add MenuScript, a menu system scripting engine
SLACK-5
Failed to receive reply... when message sent
ASTERISK-131
chan_dahdi: Automatically update time when DST starts/ends
ASTERISK-115
chan_iax2: Some pattern matches ignored if included in incoming context
ASTERISK-112
chan_dahdi: Raw power ring audible on recall ring from IAX2 to DAHDI
LBBS-32
mod_spamassassin: Improve default spam handling
ASTERISK-66
app_sf: ReceiveSF not detecting incoming SF
EVERGREEN-1
Use default identity per folder
PHREAKSCRIPT-70
app_tap: Add TAP support to Asterisk
ASTERISK-140
res_pjsip_session: Add support for SIP-ISUP
ASTERISK-110
chan_iax2: Implement MWI
ASTERISK-75
chan_dahdi: Add Call Hold feature
LBBS-92
Gmail bug causes disconnect after MOVE of certain messages
ASTERISK-80
app_record: Add RECORD_TIME function
LBBS-95
mod_mailscript: Add ADDFLAG action
LBBS-97
system.c: Evaluate shell syntax/variables when launching programs
LBBS-88
net_imap: IDLE data not being processed in realtime
ASTERISK-134
chan_dahdi: Improve configuration validation
INTERLINKED-20
Closing multiple issues simultaneously doesn't work
PHREAKSCRIPT-39
Add optional flag to not update system first
LBBS-58
net_irc: Make ping interval adjustable
DAHLIN-1
Makefile: remove update target
LBBS-71
Limit registrations from same IP within a certain amount of time
ASTERISK-63
Upstream certain PhreakScript modules
PHREAKSCRIPT-43
Add spanconfig command
ASTERISK-106
chan_pjsip: Modify From header appropriately for unavailable presentation
PHREAKNET-47
Add automation for bill mailings
ASTERISK-123
app_voicemail: Add ability to disable "thank-you" when ending voicemail
ASTERISK-104
Improve dahdi show channels output
ASTERISK-64
chan_dahdi: autoreoriginate doesn't work if caller hung up on
LBBS-66
logger: Add rate limiting of log messages
INTERLINKED-16
Add option to not be notified about user's own issues
LBBS-46
Block malicious mail servers after repeated failures
ASTERISK-52
dsp.c: Add ast_freq_reset
ASTERISK-73
chan_dahdi: Hunt to next trunk in group if busy
ASTERISK-65
sig_analog: Allow simple switch to time out to dialplan
LBBS-11
door_evergreen: Use isonetexec instead of exec
LBBS-7
Fix backspace detection/handling
ASTERISK-37
chan_pjsip: CALLERID(ani2) not working
ASTERISK-36
res_pjsip_logger: Add filtering by username
ASTERISK-58
xml: Add config documentation
ASTERISK-84
Add 'core show variables' command
ASTERISK-74
chan_dahdi: Add AMI event for callwaiting
ASTERISK-8
Optimize boilerplate RSA to MD5 fallback
ASL-4
Add framehook module to convert between mute/unmute and radio key/unkey
ASTERISK-32
chan_dahdi: Allow Call Forwarding to be set/get programatically
ASTERISK-27
chan_dahdi: add IS_FXO_SIG macro
ASTERISK-72
chan_dahdi: Move documentation to separate file
SLACK-2
README: Add missing pre-reqs
ASTERISK-55
chan_dahdi: add NUM_ANALOG_SUBS
ASTERISK-42
sig_pri: Add CLI description
ASTERISK-34
app_queue: Allow setting context at runtime
ASTERISK-30
Add ast_channel_tech_name_match function
ASTERISK-29
chan_iax2: Add ${CHANNEL(authmethod)}
ASTERISK-15
chan_dahdi: Allow sending SDMF Caller ID
ASTERISK-98
Add hangup callbacks
ASTERISK-47
res_pjsip_session: Warn if no shared codecs
ASTERISK-18
func_frame_drop: Simplify and improve
PHREAKSCRIPT-49
wanpipe doesn't compile above 6.1 kernel
ASTERISK-86
app_confbridge: Channel can join wrong bridge due to race condition
INTERLINKED-6
PhreakNet Forums
DAHLIN-14
DAHDI modules fail to load with error: loading out-of-tree module taints kernel
DAHLIN-6
Frame relay broken
LBBS-101
io_tls: Automatically reload TLS certificates and non-disruptively
LBBS-74
net_ssh: Sessions persist even when they no longer exist
DAHLIN-10
Allow enabling EMPULSE and EMFLASH simultaneously
LBBS-82
localtime_r deadlock
ASTERISK-135
Mutex errors on FreeBSD
LBBS-41
socket.c: SEGV in bbs_node_readline
LBBS-69
net_ssh: SFTP uploads fail with WinSCP
PHREAKSCRIPT-19
app_verify: Double free
PHREAKNET-14
1+ calls do not work for single numbers
LBBS-47
Email enhancements
EVERGREEN-3
Add NNTP support for newsgroups
LBBS-48
net_irc: Support multi-server networks
LBBS-90
mod_smtp_delivery_external: Improve queuing process
PHREAKNET-39
Splice Fred Covington prompts for speaking clock
WSSMAIL-5
Add full attachment support
ASTERISK-129
core: Add ref/unref for ast_moh callbacks
DAHLIN-8
Readd native SF support
PHREAKNET-49
ML model for 3-slot coin detection
PHREAKSCRIPT-45
TDMoIP driver module
PHREAKSCRIPT-44
Finish ADSI applications
PHREAKSCRIPT-41
Create virtual modem application using softmodem
PHREAKNET-41
Allow for more granular billing based on switch ZIP code
PHREAKNET-33
Finish TSPS web console
LBBS-72
mod_webdav: Add WebDAV support
ASTERISK-118
chan_iax2: Improve encryption support
DAHLIN-5
FXO rings off hook when rotary dialing on the line
ASTERISK-105
chan_dahdi: Add CLI command to display line voltages
PHREAKSCRIPT-37
app_softmodem: Support speeds higher than 2400bps
WSSMAIL-13
Improve multi-INBOX navigation
LBBS-56
net_snpp: Add Simple Network Paging Protocol support
LBBS-38
mod_smtp_mailing_lists: Allow dynamic membership
LBBS-36
net_telnet: Improve protocol support
LBBS-35
net_acap: Add ACAP protocol support
WSSMAIL-4
Add PHPMailer support for format=flowed
ASTERISK-7
Improve sound control capabilities
LBBS-30
net_nntp: Complete overhaul/rewrite to use maildirs
LBBS-49
Add functionality expected of a traditional BBS package
ASTERISK-99
pjsip: Add Cisco CUCM patch functionality
LBBS-34
net_xmpp: Add XMPP protocol support
LBBS-33
net_imap: Add/standardize commands to modify or purge keywords
ASTERISK-57
bridging: Make DAHDI, always softmix bridging modules
LBBS-91
readline.c: Crash in memmove
EVERGREEN-2
Navigation breaks when requirefromhelomatch=no in LBBS
DOCS-1
Kickstart the wiki
ASTERISK-87
asterisk.c: Prevent creation of duplicate Asterisk processes
PHREAKNET-36
Trunking integration with Phil McCarter
PHREAKNET-58
TSPS phrasing is not correct
PHREAKSCRIPT-62
res_smdr_whozz: Initialization usually fails in practice
DAHTOOL-3
Compilation warnings on 32-bit (i686)
PHREAKSCRIPT-33
verify.conf: Flag invalid NXXs as illegitimate for NANPA calls
LBBS-61
net_imap: Soft assertion in parse_flags_string
LBBS-63
net_imap, io_compress: Spurious warnings if quota exceeded
LBBS-39
net_smtp: Occasional memory corruption on email delivery
LBBS-37
Restrict outgoing port 25 from containers while allowing other traffic
LBBS-23
net_smtp: DMARC reports not sent due to rejection of localhost
LBBS-20
node.c: Occasional race conditions during node shutdown cause deadlock
LBBS-17
Temporary files not always cleaned up
LBBS-79
Makefile: cp -n is deprecated
PHREAKSCRIPT-35
app_mail: SendMail returns SUCCESS
LBBS-51
General TDD improvements
PHREAKSCRIPT-23
res_phreaknet: Increase cURL timeout
ASTERISK-94
app_chanspy: Fix bad audio with single direction operation
ASTERISK-76
app_dial: Allow MOH until progress received
LBBS-28
mod_discord: Warn users if IRC users are not online
PHREAKSCRIPT-16
app_selective: Missing pause after add/delete/instructions prompt
DAHTOOL-2
dahdi_cfg: Compiler warnings
ASTERISK-43
pbx_builtins: allow Answer to specify the channel
ASTERISK-35
sig_analog: Fix buffer overflow
DAHLIN-11
Use dev_addr_set instead of directly modifying const buffer
PHREAKSCRIPT-58
sig_analog: Allow hearpulsing gain to be adjusted
ASTERISK-128
Rename ast_sip_presence_xml_ functions
ASTERISK-127
func_codecs: view/update codecs
WSSMAIL-15
Allow navigating messages using arrow keys
PHREAKSCRIPT-29
res_phreaknet: Don't try making API requests if not a PhreakNet node
LBBS-59
Add HTTP endpoint for updating IRC presence automatically
WSSMAIL-14
Checkbox range selection doesn't always work reliably
SLACK-3
examples: Add example program to log everything to a CSV
PHREAKSCRIPT-22
Add framehook to display dialed digits
PHREAKSCRIPT-21
app_looparound: Add LoopAround application
LBBS-45
Use isoexec whenever possible
PHREAKSCRIPT-17
res_phreaknet: iax.conf, et. al. are truncated when there is no disk space left
LBBS-43
mod_discord: Improve handling of in-thread replies
LBBS-40
net_smtp: Add additional loop avoidance mechanisms
LBBS-29
net_irc: Add reminder bot
ASTERISK-69
res_cli_originate: Allow specifying Caller ID on CLI
DAHLIN-3
build: Compiler warnings
LBBS-10
mod_sysop: Allow modifying user info from console
LBBS-8
net_imap: Accounts occasionally fail to load or are reordered
LBBS-5
tests: Add TLS tests
LBBS-4
tests: Add tests that establish remote console connections
ASTERISK-53
formats: add ulaw/alaw WAV support
ASTERISK-51
app_originate: Allow spooling future calls
INTERLINKED-4
InterLinked Issues API
PHREAKNET-7
Subscriber Service Disconnect Request Option
DAHLIN-15
Add support for 20pps dial pulsing
INTERLINKED-17
Blog: Issues with tag editing and viewing
PHREAKSCRIPT-69
res_alarmsystem: Add additional environmental integration
WSSMAIL-8
Add NNTP support and IRC integration
LBBS-27
mod_irc_relay: Allow relaying of away/here status
LBBS-89
mod_sysop: Improve history navigation and tab completion
ASTERISK-126
chan_iax2: Add fixed jitterbuffer
INTERLINKED-15
Improve paging API
PHREAKNET-45
Operator system PSPs are outdated
LBBS-52
net_smtp: Add limited support for VRFY and EXPN
PHREAKSCRIPT-25
chan_sccp no longer compiles
PHREAKSCRIPT-18
Add better test coverage for 32-bit systems
WSSMAIL-7
Add ability for zero-trust type authentication
LBBS-24
build: Pre-reqs don't compile on Fedora
LBBS-9
mod_webmail: Improve MIME parsing to extract HTML/PT components
ASTERISK-56
res_musiconhold: Add recursive files support
PHREAKNET-32
Set up Millennium Manager
PHREAKNET-24
[REQ] TTY Telegrams
ASTERISK-11
chan_dahdi: Add wink guard
PHREAKNET-20
Billing based on individual CLLI zip codes
PHREAKNET-1
Add third-party billing integration
PHREAKNET-10
Enhanced utilization of Feature Group D
ASTERISK-10
Proctor application for DAHDI
PHREAKNET-9
General ARTNVAAXCG0 enhancements
ASTERISK-136
app_voicemail: Voicemails stored but no email sent
PHREAKSCRIPT-50
app_acts: Finish fine tuning and bug fixes

← All Issues || New Issue →

Sort Normal || Priority

Details


Scroll to the bottom for other notes

Asterisk often (but not always) segfaults on startup with res_pjsip_pubsub loaded, due to state being PJSIP_EVSUB_STATE_NULL.

PJPROJECT code reference: https://github.com/pjsip/pjproject/blob/5d7e2748ce6ca3f58e5310f8d7d8f78e94e4db90/pjsip/src/pjsip-simple/evsub.c#L1437-L2362

Where the exact issue lies is not currently known, but this kind of thing has been observed on and off since November 2022:

[2024-05-12 09:49:41.697] DEBUG[119882]: res_pjsip_sca.c:679 notify_task: Sent NOTIFY to 2 contacts
[2024-05-12 09:49:41.697] ERROR[119815]: res_pjsip_pubsub.c:2558 send_notify: FRACK!, Failed assertion sub_tree->evsub->dst_state != PJSIP_EVSUB_STATE_NULL (0)
[2024-05-12 09:49:42.082] ERROR[119815]:   Got 13 backtrace records
# 0: asterisk __ast_assert_failed()
# 1: [0x7fb6968ce259] res_pjsip_pubsub.so utils.h:737 _ast_assert()
# 2: [0x7fb6968d4bff] res_pjsip_pubsub.so res_pjsip_pubsub.c:2559 send_notify()
# 3: [0x7fb6968d637e] res_pjsip_pubsub.so res_pjsip_pubsub.c:3046 initial_notify_task()
# 4: asterisk ast_taskprocessor_execute()
# 5: asterisk <unknown>()
# 6: asterisk ast_taskprocessor_execute()
# 7: asterisk <unknown>()
# 8: asterisk <unknown>()
# 9: asterisk <unknown>()
#10: asterisk <unknown>()
#11: [0x7fb6da41d044] libc.so.6 pthread_create.c:442 start_thread()
#12: [0x7fb6da49d61c] libc.so.6 clone3.S:83 clone3()

debian*CLI>
Disconnected from Asterisk server
Asterisk cleanly ending (0).
Executing last minute cleanups

[2024-05-12 09:52:21.166] ERROR[119924]: res_pjsip_pubsub.c:2558 send_notify: FRACK!, Failed assertion sub_tree->evsub->dst_state != PJSIP_EVSUB_STATE_NULL (0)
[2024-05-12 09:52:21.166] DEBUG[119993]: res_pjsip_sca.c:620 on_tdata: Full Call-Info header: <sip:PolycomSCA1@10.40.1.100:14444>;appearance-index=*;appearance-state=idle
[2024-05-12 09:52:21.166] DEBUG[119993]: res_pjsip_pubsub.c:3971 pubsub_on_evsub_state: evsub 0x7f8e8c0255a8 state ACTIVE event USER sub_tree 0x7f8e8c02c410 sub_tree state Normal
[2024-05-12 09:52:21.166] DEBUG[119993]: res_pjsip_pubsub.c:686 subscription_persistence_update: Updating persistence for 'PolycomSCA1->PolycomSCA1'  prune on boot: no
[2024-05-12 09:52:21.167] DEBUG[119993]: res_pjsip_sca.c:679 notify_task: Sent NOTIFY to 2 contacts
[2024-05-12 09:52:21.485] ERROR[119924]:   Got 13 backtrace records
# 0: asterisk __ast_assert_failed()
# 1: [0x7f8e5368c259] res_pjsip_pubsub.so utils.h:737 _ast_assert()
# 2: [0x7f8e53692bff] res_pjsip_pubsub.so res_pjsip_pubsub.c:2559 send_notify()
# 3: [0x7f8e5369437e] res_pjsip_pubsub.so res_pjsip_pubsub.c:3046 initial_notify_task()
# 4: asterisk ast_taskprocessor_execute()
# 5: asterisk <unknown>()
# 6: asterisk ast_taskprocessor_execute()
# 7: asterisk <unknown>()
# 8: asterisk <unknown>()
# 9: asterisk <unknown>()
#10: asterisk <unknown>()
#11: [0x7f8e971c9044] libc.so.6 pthread_create.c:442 start_thread()
#12: [0x7f8e9724961c] libc.so.6 clone3.S:83 clone3()
Thread 1 (Thread 0x7f14c55ba6c0 (LWP 550700)):
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
        tid = <optimized out>
        ret = 0
        pd = <optimized out>
        old_mask = {__val = {139727186681856}}
        ret = <optimized out>
#1  0x00007f150b458d9f in __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2  0x00007f150b409f32 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
        ret = <optimized out>
#3  0x00007f150b3f4472 in __GI_abort () at ./stdlib/abort.c:79
        save_stage = 1
        act = {__sigaction_handler = {sa_handler = 0x20, sa_sigaction = 0x20}, sa_mask = {__val = {1427, 139728036857840, 18, 7, 139728036941456, 538976288, 0, 139727187188376, 9045314737401847>
#4  0x00007f150b3f4395 in __assert_fail_base (fmt=0x7f150b568a90 "%s%s%s:%u: %s%sAssertion `%s' failed.
%n", assertion=assertion@entry=0x7f150c189b28 "sub->dst_state!=PJSIP_EVSUB_STATE_NULL", file=file@entry=0x7f150c189622 "../src/pjsip-simple/evsub.c", line=line@entry=1427, function=function@ent>
        str = 0x7f14f80087f0 "^X^YO     ^S\177"
        total = 4096
#5  0x00007f150b402e32 in __GI___assert_fail (assertion=0x7f150c189b28 "sub->dst_state!=PJSIP_EVSUB_STATE_NULL", file=0x7f150c189622 "../src/pjsip-simple/evsub.c", line=1427, function=0x7f150c1>
#6  0x00007f150c08a233 in pjsip_evsub_send_request (sub=0x7f14f8006038, tdata=0x7f14f026d3c8) at ../src/pjsip-simple/evsub.c:1427
        status = 0
        __PRETTY_FUNCTION__ = "pjsip_evsub_send_request"
#7  0x00007f14c794b8a5 in sip_subscription_send_request (sub_tree=0x7f14f8003ab0, tdata=0x7f14f026d3c8) at res_pjsip_pubsub.c:2044

Per one of George's changes, all the pubsub modules should also use this format instead of always returning -1:

static int unload_module(void)
{
    if (ast_shutdown_final()) {
        ast_sip_unregister_subscription_handler(&feature_handler);
        ast_custom_function_unregister(&features_function);
        return 0;
    } else {
        /* Can't unload modules that call ast_sip_register_subscription_handler */
        return -1;
    }
}

In res_pjsip_device_features, this can be a bitfield: unsigned int terminate:1;

Additionally, seized appearances must expire after 30 seconds, so ensure that's the case or make it so.


Comments

You must be logged in to leave a comment.