[LBBS-12] mod_webmail: client_flush_pending_output infinite loop

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
DOCS-2
Website not allowing me to log in

← All Issues || New Issue →

Sort Normal || Priority

Details


At some point after a webmail session has concluded, it is typical to find that this has been spamming the console:

[2024-06-22 08:12:28.038]   DEBUG[65783]: mod_webmail.c:3085 client_flush_pending_output: Flushing output ''
[2024-06-22 08:12:28.038]   DEBUG[65783]: mod_webmail.c:3085 client_flush_pending_output: Flushing output ''

.. ad infinitum.

Backtrace when running:

       dynamic = 0
        fulldynamic = 0
        bytes = 130
        log_stdout = <optimized out>
        need_reset = 0
        skip_logfile = 0
        __func__ = "__bbs_log"
#8  0x00007f58283f1a93 in client_flush_pending_output (client=<optimized out>) at mod_webmail.c:3085
        line = 0x7f582003caf0 ""
        __func__ = "client_flush_pending_output"
        res = <optimized out>
        __func__ = "idle_start"
#9  idle_start (client=0x7f5820007610, ws=<optimized out>) at mod_webmail.c:3118
        res = <optimized out>
        __func__ = "idle_start"
#10 0x00007f582b49d844 in ws_handler (node=node@entry=0x7f57e80d5720, http=http@entry=0x7f57df7f3730, proxied=proxied@entry=1) at net_ws.c:1047

Possibly related, sometimes idle_start can also trigger a crash:

Thread 1 (Thread 0x7fca6dffb6c0 (LWP 103850)):
#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 = {7142744331360876602}}
        ret = <optimized out>
#1  0x00007fcab5c93e8f in __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2  0x00007fcab5c44fb2 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
        ret = <optimized out>
#3  0x00007fcab5c2f472 in __GI_abort () at ./stdlib/abort.c:79
        save_stage = 1
        act = {__sigaction_handler = {sa_handler = 0x20, sa_sigaction = 0x20}, sa_mask = {__val = {4321147497007208943, 12798070773811002880, 11952406549267936580, 7632343802151250176, 14024600428130476874, 16319518678535185408, 6825180314748858317, 7632343802151250176, 140508610266257, 0, 3164090317, 140507405580880, 0, 1, 140508610284947, 0}}, sa_flags = -1244626555, sa_restorer = 0x0}
#4  0x0000558137fc1667 in __bbs_assert_fatal (condition_str=<optimized out>, file=<optimized out>, line=<optimized out>, function=<optimized out>) at backtrace.c:311
#5  0x00007fcab1fffb34 in __bbs_assert (function=0x7fcab200e270 <__func__.46> "idle_start", line=3107, file=0x7fcab200c015 "mod_webmail.c", condition_str=0x7fcab200cf60 "client->imap->imap_selection_info != NULL", condition=<optimized out>) at ../include/bbs.h:440
        res = <optimized out>
        __func__ = "idle_start"
#6  idle_start (client=client@entry=0x7fca94001eb0, ws=0x7fca6dff7cc0) at mod_webmail.c:3107
        res = <optimized out>
        __func__ = "idle_start"
#7  0x00007fcab200a0d5 in on_poll_activity (ws=0x7fca6dff7cc0, data=0x7fca94001eb0) at mod_webmail.c:3281
        client = 0x7fca94001eb0
        idledata = <optimized out>
        res = 0
        __func__ = "on_poll_activity"
#8  0x00007fcab5055844 in ws_handler (node=node@entry=0x7fca840489e0, http=http@entry=0x7fca6dff8730, proxied=proxied@entry=1) at net_ws.c:1047
        cres = <optimized out>
        now = <optimized out>
        elapsed = <optimized out>
        this_poll_start = 1721916373
        elapsed_sec = 17
        numfds = 2
        ws = {client = 0x7fca94001dd0, node = 0x7fca840489e0, http = 0x7fca6dff8730, lock = {mutex = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 39 times>, __align = 0}, info = {initialized = 1, staticinit = 0, destroyed = 0, owners = 0, lastlocked = 1721916363, lwp = 103850, lineno = 205, filename = "net_ws.c", '\000' <repeats 15 times>}}, data = 0x7fca94001eb0, pollfd = 49, pollms = 1740000, varlist = {first = 0x0, last = 0x0, lock = {lock = {__data = {__readers = 0, __writers = 0, __wrphase_futex = 0, __writers_futex = 0, __pad3 = 0, __pad4 = 0, __cur_writer = 0, __shared = 0, __rwelision = 0 '\000', __pad1 = "\000\000\000\000\000\000", __pad2 = 0, __flags = 0}, __size = '\000' <repeats 55 times>, __align = 0}, intlock = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 39 times>, __align = 0}, info = {initialized = 1, staticinit = 0, destroyed = 0, owners = 0, lastlocked = 0, lwp = 103850, lineno = 867, filename = "net_ws.c", '\000' <repeats 15 times>}}}, cookievals = {first = 0x0, last = 0x0, lock = {lock = {__data = {__readers = 0, __writers = 0, __wrphase_futex = 0, __writers_futex = 0, __pad3 = 0, __pad4 = 0, __cur_writer = 0, __shared = 0, __rwelision = 0 '\000', __pad1 = "\000\000\000\000\000\000", __pad2 = 0, __flags = 0}, __size = '\000' <repeats 55 times>, __align = 0}, intlock = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0, __elision = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 39 times>, __align = 0}, info = {initialized = 1, staticinit = 0, destroyed = 0, owners = 0, lastlocked = 0, lwp = 103850, lineno = 868, filename = "net_ws.c", '\000' <repeats 15 times>}}}, proxied = 1, sessionchecked = 0, cookieschecked = 0}
        route = 0x55813848b6d0
        client = 0x7fca94001dd0
        res = <optimized out>
        want_ping = 0
        ping_data = '\000' <repeats 14 times>
        pfds = {{fd = 48, events = 1, revents = 0}, {fd = 49, events = 1, revents = 1}}
        lastping = 1721916356
        max_ms = 23000
        pollms = 23000
        app_ms_elapsed = 17000
        __func__ = "ws_handler"
#9  0x00007fcab5055ef6 in ws_direct_handler (node=node@entry=0x7fca840489e0, secure=<optimized out>) at net_ws.c:1167

Comments

You must be logged in to leave a comment.