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

ASTERISK-110
chan_iax2: Implement MWI
ASTERISK-88
chan_dahdi: Add ADSI on-hook download support
PHREAKSCRIPT-29
res_phreaknet: Don't try making API requests if not a PhreakNet node
PHREAKSCRIPT-26
format_mp3 prereqs not always available
LBBS-68
scripts: Improve backup script error reporting
LBBS-54
mod_mailscript: Add RECIPIENT condition
LBBS-31
mod_sieve: Major Sieve filtering overhaul and improvements
ASTERISK-109
voicemail.conf.sample: Clarify misnamed option behavior
INTERLINKED-17
Blog: Issues with tag editing and viewing
LBBS-15
smtp: Locking errors, deadlock when queue runs during delivery
LBBS-67
net_ftp: Set node protocol to FTPES if using Explicit TLS
ASTERISK-68
res_pjsip_sca: Segfaults on startup with SCA
ASTERISK-108
config.c: Investigate and fix various config file rewrite bugs
PHREAKSCRIPT-39
Add optional flag to not update system first
PHREAKSCRIPT-38
res_phreaknet: Increase cURL timeouts
LBBS-32
mod_spamassassin: Improve default spam handling
PHREAKSCRIPT-37
app_softmodem: Support speeds higher than 2400bps
LBBS-59
Add HTTP endpoint for updating IRC presence automatically
ASTERISK-22
general: Fix various typos
PHREAKSCRIPT-36
app_audichron: Tone not working after announcements
PHREAKSCRIPT-35
app_mail: SendMail returns SUCCESS
LBBS-66
logger: Add rate limiting of log messages
INTERLINKED-15
Improve paging API
ASTERISK-107
indications.conf.sample: Add confirmation tone
LBBS-65
net_smtp: Allow internal trusted hosts to be exempt from protocol violation checks
INTERLINKED-16
Add option to not be notified about
LBBS-16
io_compress: Occasional memory corruption on shutdown
PHREAKSCRIPT-32
app_alarmsystem: Add alarm system application
WSSMAIL-14
Checkbox range selection doesn't always work reliably
PHREAKSCRIPT-34
app_verify: Check additional headers for STIR/SHAKEN attestation
PHREAKSCRIPT-33
verify.conf: Flag invalid NXXs as illegitimate for NANPA calls
LBBS-64
mod_operator: Crash with more than 64 options?
LBBS-12
mod_webmail: client_flush_pending_output infinite loop
DAHLIN-4
Improve manual span assignment process
ASTERISK-19
chan_dahdi: Remove sig_analog paths
LBBS-61
net_imap: Soft assertion in parse_flags_string
LBBS-63
net_imap, io_compress: Spurious warnings if quota exceeded
ASTERISK-106
chan_pjsip: Modify From header appropriately for unavailable presentation
ASTERISK-93
chan_dahdi: DSP optimizations
PHREAKSCRIPT-31
phreaknet config does not update verify.conf
LBBS-62
net_imap: IMAP client frequently fails for Microsoft accounts
PHREAKSCRIPT-30
MD5/RSA authenticated calls frequently fail
PHREAKNET-45
Operator system PSPs are outdated
ASTERISK-82
app_queue: Allow queue strategy to be manipulated externally
LBBS-60
Prevent clients from monopolizing nodes (DOS)
LBBS-46
Block malicious mail servers after repeated failures
LBBS-19
tls.c: Occasional SEGV at shutdowns of TLS connections
ASTERISK-105
chan_dahdi: Add CLI command to display line voltages
ASTERISK-104
Improve dahdi show channels output
WSSMAIL-13
Improve multi-INBOX navigation
WSSMAIL-12
Add one-click "Not junk" button
LBBS-22
mod_mail_trash: Eliminate bbs_pthread_cancel_kill
LBBS-47
Email enhancements
LBBS-6
Add menu system scripting engine
SLACK-1
slack-client: Deadlock when relaying messages
LBBS-58
net_irc: Make ping interval adjustable
ASTERISK-103
GitHub Issue 661 was not autoclosed by PR
PHREAKSCRIPT-28
app_predial: Failure to retrieve user agent property
LBBS-57
Occasional 100% CPU usage on SSH session termination
PHREAKNET-44
Show only sum of message units used per month on bills
ASTERISK-96
asterisk.adsi: Add Call Waiting Deluxe integration to resident script
PHREAKNET-41
Allow for more granular billing based on switch ZIP code
LBBS-56
net_snpp: Add Simple Network Paging Protocol support
ASTERISK-102
app_voicemail: Play RDNIS if present when listening to envelope
LBBS-55
net_telnet: Don't use strerror if res is 0
INTERLINKED-13
Comment and Close doesn't close issue
LBBS-53
Assertion when forwarding to external recipient
ASTERISK-46
dsp.c: Remove ast_ prefixes for static functions
ASTERISK-52
dsp.c: Add ast_freq_reset
PHREAKSCRIPT-20
dsp.c: coin DSP patch breaks faxing
ASTERISK-101
func_tonedetect: 2600 Hz detection not working or suboptimal
WSSMAIL-11
Use accurate hyperlinks for folders
WSSMAIL-10
Can scroll down past bottom of page on larger screens
WSSMAIL-9
Sent email uploads can fail due to relative host difference
SLACK-3
examples: Add example program to log everything to a CSV
LBBS-52
net_smtp: Add limited support for VRFY and EXPN
PHREAKSCRIPT-27
res_msp not patched in during install
PHREAKNET-42
Provisioning fails for lines with certain features
ASTERISK-100
chan_dahdi: PRI lock held at module unload
LBBS-51
General TDD improvements
LBBS-50
mod_chanserv: NULL dereference when joining IRC channel
PHREAKNET-39
Splice Fred Covington prompts for speaking clock
PHREAKSCRIPT-25
chan_sccp no longer compiles
PHREAKNET-40
Recent Change provisioning bug increments device name by 1
ASTERISK-99
pjsip: Add Cisco CUCM patch functionality
ASTERISK-98
Add hangup callbacks
ASTERISK-97
func_groupcount: Add group vars
LBBS-49
Add functionality expected of a traditional BBS package
LBBS-48
net_irc: Support multi-server networks
WSSMAIL-8
Add NNTP support and IRC integration
EVERGREEN-3
Add NNTP support for newsgroups
LBBS-26
server_setup.sh: Autocreate all default directories
PHREAKSCRIPT-24
DAHDI builds in GitHub CI occasionally fail due to IPv6
PHREAKSCRIPT-23
res_phreaknet: Increase cURL timeout
PHREAKSCAN-2
Improve automation
PHREAKSCRIPT-22
Add framehook to display dialed digits
PHREAKSCRIPT-21
app_looparound: Add LoopAround application
ASTERISK-95
testsuite README: Update outdated references
ASTERISK-94
app_chanspy: Fix bad audio with single direction operation
LBBS-45
Use isoexec whenever possible
CAMI-1
Action Originate Returns -1
EVERGREEN-2
Navigation breaks when requirefromhelomatch=no in LBBS
ASTERISK-92
config.c: ast_variable_update doesn't update all instances
PHREAKSCRIPT-19
app_verify: Double free
PHREAKSCRIPT-18
Add better test coverage for 32-bit systems
PHREAKSCRIPT-17
res_phreaknet: iax.conf, et. al. are truncated when there is no disk space left
LBBS-44
io_tls: TLS errors when no certs are defined
LBBS-43
mod_discord: Improve handling of in-thread replies
LBBS-42
mod_discord: Actions not relayed properly from IRC
LBBS-41
socket.c: SEGV in bbs_node_readline
ASTERISK-91
features.c: Add warning to not set BRIDGE_NOANSWER as global variable
ASTERISK-90
chan_iax2: Add log message for rejected calls
ASTERISK-89
app_stack: Print proper exit location for PBXless channels
ASTERISK-87
asterisk.c: Prevent creation of duplicate Asterisk processes
ASTERISK-86
app_confbridge: Channel can join wrong bridge due to race condition
ASTERISK-85
chan_pjsip: Add channel encryption integration
ASTERISK-84
Add 'core show variables' command
ASTERISK-83
res_pjsip_device_features: Add forwarding and DND synchronization
ASTERISK-81
format_lame: MP3 read and write with LAME library
ASTERISK-80
app_record: Add RECORD_TIME function
ASTERISK-79
config.c: Make ast_variable_retrieve return last match
ASTERISK-78
sig_analog: Add Last Number Redial
ASTERISK-77
sig_analog: Add Call Waiting Deluxe support
LBBS-40
net_smtp: Add additional loop avoidance mechanisms
LBBS-39
net_smtp: Occasional memory corruption on email delivery
LBBS-38
mod_smtp_mailing_lists: Allow dynamic membership
LBBS-37
Restrict outgoing port 25 from containers while allowing other traffic
LBBS-36
net_telnet: Improve protocol support
LBBS-35
net_acap: Add ACAP protocol support
LBBS-34
net_xmpp: Add XMPP protocol support
LBBS-33
net_imap: Add/standardize commands to modify or purge keywords
ASTERISK-76
app_dial: Allow MOH until progress received
ASTERISK-75
chan_dahdi: Add Call Hold feature
ASTERISK-74
chan_dahdi: Add AMI event for callwaiting
ASTERISK-73
chan_dahdi: Hunt to next trunk in group if busy
ASTERISK-72
chan_dahdi: Move documentation to separate file
PHREAKNET-38
Send reminder emails if requests are pending
WSSMAIL-7
Add ability for zero-trust type authentication
WSSMAIL-6
Add option to auto-reconnect if disconnected
LBBS-30
net_nntp: Complete overhaul/rewrite to use maildirs
LBBS-29
net_irc: Add reminder bot
LBBS-28
mod_discord: Warn users if IRC users are not online
LBBS-27
mod_irc_relay: Allow relaying of away/here status
PHREAKSCRIPT-16
app_selective: Missing pause after add/delete/instructions prompt
ASTERISK-71
app_if: ElseIf executed even if If is true
ASTERISK-70
loader.c: Print module build opt sums if they differ
ASTERISK-69
res_cli_originate: Allow specifying Caller ID on CLI
DAHTOOL-2
dahdi_cfg: Compiler warnings
DAHLIN-3
build: Compiler warnings
PHREAKSCRIPT-15
app_dialtone: t option should exclude matches that include #
LBBS-25
mod_mail_trash: Attempts to open files as directories
LBBS-24
build: Pre-reqs don't compile on Fedora
LBBS-23
net_smtp: DMARC reports not sent due to rejection of localhost
LBBS-21
net_imap: Proxy clients orphaned without associated IMAP session
LBBS-20
node.c: Occasional race conditions during node shutdown cause deadlock
LBBS-18
net_ssh: High CPU trying to end SSH session
LBBS-17
Temporary files not always cleaned up
LBBS-14
net_imap: SEGV in strncmp
LBBS-13
pty.c: Attempt to lock previously destroyed mutex
ASTERISK-67
voicemail.conf.sample: maxsilence/minsecs trigger warning
ASTERISK-66
app_sf: ReceiveSF not detecting incoming SF
PHREAKNET-37
Chirp should be audible upon on-hook of calls on a 2600 trunk
ASTERISK-65
sig_analog: Allow simple switch to time out to dialplan
ASTERISK-64
chan_dahdi: autoreoriginate doesn't work if caller hung up on
LBBS-11
door_evergreen: Use isonetexec instead of exec
EVERGREEN-1
Use default identity per folder
SLACK-2
README: Add missing pre-reqs
WSSMAIL-5
Add full attachment support
WSSMAIL-4
Add PHPMailer support for format=flowed
WSSMAIL-3
Message listing missing recipient for some messages
WSSMAIL-2
Implicitly mark messages read when deleting
WSSMAIL-1
Preview pane doesn't take up allotted space
LBBS-10
mod_sysop: Allow modifying user info from console
LBBS-9
mod_webmail: Improve MIME parsing to extract HTML/PT components
LBBS-8
net_imap: Accounts occasionally fail to load or are reordered
LBBS-7
Fix backspace detection/handling
LBBS-5
tests: Add TLS tests
LBBS-4
tests: Add tests that establish remote console connections
LBBS-3
module.c: Module ref tracking is flaky
LBBS-2
module.c: Improve module loading process
PHREAKNET-36
Trunking integration with Phil McCarter
PHREAKNET-35
TSPS improvements
PHREAKNET-34
Pat Fleet prompts
ASTERISK-63
Upstream certain PhreakScript modules
PHREAKNET-33
Finish TSPS web console
ASTERISK-62
app_followme: use enum for tmpuser->state
ASTERISK-61
func_groupcount: Add see-also for GROUP functions
ASTERISK-60
users.conf: Remove deprecated config file
ASTERISK-59
chan_dahdi: Remove stripmsd
ASTERISK-58
xml: Add config documentation
ASTERISK-57
bridging: Make DAHDI, always softmix bridging modules
ASTERISK-56
res_musiconhold: Add recursive files support
ASTERISK-55
chan_dahdi: add NUM_ANALOG_SUBS
ASTERISK-54
loader: Fix reloading using config name
ASTERISK-53
formats: add ulaw/alaw WAV support
ASTERISK-51
app_originate: Allow spooling future calls
PHREAKSCRIPT-14
app_selective: Allow wildcard * patterns
ASTERISK-50
app_dial: Fix or document r tonezone option
ASTERISK-49
Remove all deprecated stuff
ASTERISK-48
func_devstate: Delete empty from AstDB
ASTERISK-47
res_pjsip_session: Warn if no shared codecs
ASTERISK-45
app_voicemail: Option 4 at main menu
ASTERISK-44
format_pcm: Fix seek past end
DAHTOOL-1
system.conf: Fix typos
DAHLIN-2
Fix typos and dead links
ASTERISK-43
pbx_builtins: allow Answer to specify the channel
ASTERISK-42
sig_pri: Add CLI description
ASTERISK-41
app_confbridge: Document binaural_active
ASTERISK-40
pjsip: document MessageSend AOR limitation
ASTERISK-39
app_dial: ANSWEREDTIME documentation
ASTERISK-38
config: Fix missing config log consistency
ASTERISK-37
chan_pjsip: CALLERID(ani2) not working
ASTERISK-36
res_pjsip_logger: Add filtering by username
ASTERISK-35
sig_analog: Fix buffer overflow
ASTERISK-34
app_queue: Allow setting context at runtime
ASTERISK-33
docs: Update obsolete wiki links
ASTERISK-32
chan_dahdi: Allow Call Forwarding to be set/get programatically
ASTERISK-31
Add AMI event for assertion
ASTERISK-30
Add ast_channel_tech_name_match function
ASTERISK-29
chan_iax2: Add ${CHANNEL(authmethod)}
ASTERISK-28
ast_auto_answer: Use when possible
ASTERISK-27
chan_dahdi: add IS_FXO_SIG macro
ASTERISK-26
app_voicemail: make maxsecs user-configurable
ASTERISK-25
app_originate: allow early media, labels
ASTERISK-24
app_chanspy: Add no answer option
ASTERISK-23
logging: Update log levels
ASTERISK-21
app_dial: Remove dead debug code
ASTERISK-20
app_meetme: Update or remove removal version
LBBS-1
mod_slack: Workspace fails to initialize due to restrictions
DAHLIN-1
Makefile: remove update target
PHREAKSCRIPT-13
func_fsk_connectedline: Connected Line to FSK framehook
ASTERISK-18
func_frame_drop: Simplify and improve
ASTERISK-17
app.c: Add register multiple API for apps and funcs
ASTERISK-16
res_pbx_validate: Add commands to warn of dialplan problems
ASTERISK-15
chan_dahdi: Allow sending SDMF Caller ID
ASTERISK-14
musiconhold: Add custom generator for channels
PHREAKNET-32
Set up Millennium Manager
PHREAKSCAN-1
Raw data upload restricted to 15M
PHREAKNET-29
Requested Line
PHREAKNET-28
Phone Verification Failed
INTERLINKED-10
Telegrams can be sent by phone to non-subscribers
INTERLINKED-9
Phreaknet Directory link broken
INTERLINKED-8
Cannot use phreaknet wizard
PHREAKSCRIPT-12
Cannot utilize script because of patch issues
ASTERISK-13
Asterisk Framehook: DTMF to MF
INTERLINKED-7
TTY BBS lines (45.5+50) issues
PHREAKNET-22
Weather line international lookup problem
PHREAKNET-24
[REQ] TTY Telegrams
PHREAKNET-23
Wakeup calls not dialling at scheduled time
PHREAKNET-20
Billing based on individual CLLI zip codes

← 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:[email protected]: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.