[Home]

Summary:ASTERISK-28991: bridging: No channel is present when writing action
Reporter:Vyrva Igor (vigor1710)Labels:
Date Opened:2020-07-16 01:51:23Date Closed:2021-02-08 07:51:21.000-0600
Priority:MinorRegression?
Status:Closed/CompleteComponents:Core/Bridging
Versions:16.10.0 Frequency of
Occurrence
Frequent
Related
Issues:
is related toASTERISK-29379 Segfault - ast_channel_is_multistream (chan=0x0) at channel_internal_api.c:1590
Environment:PBX: Asterisk 16.10.0 PJProject: 2.8 OS: CentOS Linux release 7.8.2003 (Core) Kernel: 4.20.3-1.el7.elrepo.x86_64Attachments:( 0) core.pbx16-slc-spb-2020-07-15T16-29-33+0300-full.txt
( 1) core.pbx16-slc-spb-2020-07-15T16-29-33+0300-thread1.txt
Description:After the commissioning of the servers began to notice that there are falling:

kernel: asterisk[30565]: segfault at 0 ip 00000000004aef83 sp 00007f7e98cd09b8 error 4 in asterisk[400000+2b7000]

gdb /usr/sbin/asterisk /tmp/core-2020-07-15T16:29:33+0300 :

[Thread debugging using libthread_db enabled]
Using host libthread_db library “/usr/lib64/libthread_db.so.1”.
Missing separate debuginfo for /usr/lib64/libmyodbc8.so
Try: yum --enablerepo=‘debug’ install /usr/lib/debug/.build-id/42/ae4bf83278c9d4b55688364cce526619bcdba4.debug
Core was generated by `/usr/sbin/asterisk -f -vvvg -c’.
Program terminated with signal 11, Segmentation fault.
#0 ast_channel_is_multistream (chan=0x0) at channel_internal_api.c:1590
1590 return (chan->tech && chan->tech->read_stream && chan->tech->write_stream);

(gdb) bt
#0 0x00000000004aef83 in ast_channel_is_multistream (chan=0x0) at channel_internal_api.c:1590
#1 0x000000000047d083 in bridge_channel_write_action_data (frame=0x7f7e98cd09d0, bridge_channel=0x7f7f4c1d9910) at bridge_channel.c:650
#2 0x000000000047d083 in bridge_channel_write_action_data (bridge_channel=0x7f7f4c1d9910, action=, data=, datalen=) at bridge_channel.c:1005
#3 0x000000000047bd1b in payload_helper_playfile (post_it=post_it@entry=0x47d039 <bridge_channel_write_action_data>, bridge_channel=bridge_channel@entry=0x7f7f4c1d9910, custom_play=custom_play@entry=0x0, playfile=,
playfile@entry=0x7f7e98cd0b10 “beep”, moh_class=, moh_class@entry=0x0) at bridge_channel.c:1356
#4 0x00000000004809dc in ast_bridge_channel_write_playfile (bridge_channel=bridge_channel@entry=0x7f7f4c1d9910, custom_play=custom_play@entry=0x0, playfile=playfile@entry=0x7f7e98cd0b10 “beep”, moh_class=moh_class@entry=0x0)
at bridge_channel.c:1361
#5 0x0000000000472597 in ast_bridge_transfer_attended (to_transferee=0x7f7eb000fea0, to_transfer_target=0x7f7f400f0f80) at bridge.c:4805
#6 0x00007f7eda9aff31 in refer_attended_task (data=0x7f7f4803ee68) at res_pjsip_refer.c:543
#7 0x0000000000580790 in ast_taskprocessor_execute (tps=tps@entry=0x7f7f4007bb70) at taskprocessor.c:1237
#8 0x0000000000587217 in execute_tasks (data=0x7f7f4007bb70) at threadpool.c:1354
#9 0x0000000000580790 in ast_taskprocessor_execute (tps=0x177aaa0) at taskprocessor.c:1237
#10 0x0000000000587da9 in worker_start (pool=0x1778ea0) at threadpool.c:367
#11 0x0000000000587da9 in worker_start (worker=0x7f7ea8073bc0) at threadpool.c:1137
#12 0x0000000000587da9 in worker_start (arg=arg@entry=0x7f7ea8073bc0) at threadpool.c:1056
#13 0x000000000058eb57 in dummy_start (data=) at utils.c:1249
#14 0x00007f7f5a2e5ea5 in start_thread () at /usr/lib64/libpthread.so.0
#15 0x00007f7f596868dd in clone () at /usr/lib64/libc.so.6
Comments:By: Asterisk Team (asteriskteam) 2020-07-16 01:51:25.110-0500

Thanks for creating a report! The issue has entered the triage process. That means the issue will wait in this status until a Bug Marshal has an opportunity to review the issue. Once the issue has been reviewed you will receive comments regarding the next steps towards resolution. Please note that log messages and other files should not be sent to the Sangoma Asterisk Team unless explicitly asked for. All files should be placed on this issue in a sanitized fashion as needed.

A good first step is for you to review the [Asterisk Issue Guidelines|https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines] if you haven't already. The guidelines detail what is expected from an Asterisk issue report.

Then, if you are submitting a patch, please review the [Patch Contribution Process|https://wiki.asterisk.org/wiki/display/AST/Patch+Contribution+Process].

Please note that once your issue enters an open state it has been accepted. As Asterisk is an open source project there is no guarantee or timeframe on when your issue will be looked into. If you need expedient resolution you will need to find and pay a suitable developer. Asking for an update on your issue will not yield any progress on it and will not result in a response. All updates are posted to the issue when they occur.

By: Vyrva Igor (vigor1710) 2020-07-16 09:52:09.356-0500

I'm not sure that setting the priority Minor is correct
Here is an example when such falls occurred:
core.pbx16-slc-spb-2020-06-19T13:42:47+0300
core.pbx16-slc-spb-2020-06-19T16:54:02+0300
core.pbx16-slc-spb-2020-06-22T15:38:00+0300
core.pbx16-slc-spb-2020-06-26T16:40:21+0300
core.pbx16-slc-spb-2020-06-26T20:14:27+0300
core.pbx16-slc-spb-2020-07-08T13:16:13+0300
core.pbx16-slc-spb-2020-07-08T21:23:30+0300
core.pbx16-slc-spb-2020-07-15T11:17:11+0300
core.pbx16-slc-spb-2020-07-15T16:29:33+0300
core.pbx16-slc-msk-2020-07-09T18:51:13+0300
core.pbx16-slc-msk-2020-07-14T14:11:24+0300
core.pbx16-slc-msk-2020-07-16T13:17:54+0300
core.pbx16-slc-msk-2020-07-16T13:21:15+0300

I have 2 PBX that work alternately, so different file names
PBX were made from a single image of the ProxMox machine

By: Vyrva Igor (vigor1710) 2020-09-10 05:49:54.438-0500

Up
Maybe there is a direction to find a solution to this problem?

By: Joshua C. Colp (jcolp) 2020-09-10 05:54:51.367-0500

The issue has been accepted and is open. There is noone actively working on it currently or investigating further. When that occurs it will be assigned out to them. That being said a change[1] was done recently which could potentially be used in an effort to resolve the problem, but noone has looked into it.

[1] https://gerrit.asterisk.org/c/asterisk/+/14868

By: Vyrva Igor (vigor1710) 2020-11-13 04:32:37.445-0600

Perhaps this suggestion from one of the Telegram chats will help to solve this problem:
in the channel_internal_api.c file, change
the code
{code}
int ast_channel_is_multistream(struct ast_channel *chan)
{
       return (chan->tech && chan->tech->read_stream && chan->tech->write_stream);
}

{code}
to
{code}
int ast_channel_is_multistream(struct ast_channel *chan)
{
       return (chan && chan->tech && chan->tech->read_stream && chan->tech->write_stream);
}

{code}

By: Vyrva Igor (vigor1710) 2021-02-08 07:43:45.619-0600

Most likely, the problem was related to a specific softphone that was used in some jobs. After changing the softphone for work, the problem went away.

I think that the task can be closed.