[Home]

Summary:ASTERISK-29414: res_pjsip_outbound_publish reload with config change results in FRACK! error
Reporter:Andrew Yager (andrewyager)Labels:
Date Opened:2021-05-05 09:18:35Date Closed:2021-05-24 12:00:00
Priority:MinorRegression?
Status:Closed/CompleteComponents:Resources/res_pjsip_outbound_publish
Versions:18.3.0 Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:Replacing an existing outbound publish entry with a new one and requesting pjsip reload creates records for bad objects.

To reproduce:

[publishconfig]
type=outbound-publish
server_uri=sip:192.168.1.1
from_uri=sip:192.168.1.2
expiration=3600
event=dialog
multi_user=yes
@body=application/dialog-info+xml
@context=^publish_hints

and load asterisk

now edit config:

[publishconfig]
type=outbound-publish
server_uri=sip:192.168.1.1
from_uri=sip:127.0.0.1
expiration=3600
event=dialog
multi_user=yes
@body=application/dialog-info+xml
@context=^publish_hints

and reload pjsip with 'pjsip reload'

Asterisk will now report on the cli on notification events:

[May  6 00:09:35] ERROR[582959]: res_pjsip_outbound_publish.c:563 sip_outbound_publish_client_get_publisher: FRACK!, Failed assertion bad magic number 0x0 for object 0x55e8e99c5620 (0)
[May  6 00:09:35] ERROR[582959]:   Got 17 backtrace records
# 0: [0x55e8e32ea334] asterisk utils.c:2454 __ast_assert_failed()
# 1: [0x55e8e31494b3] asterisk astobj2.c:220 log_bad_ao2()
# 2: [0x55e8e314be86] asterisk astobj2_container.c:244 internal_ao2_traverse()
# 3: [0x55e8e314c49e] asterisk astobj2_container.c:414 __ao2_callback()
# 4: [0x55e8e314c55e] asterisk astobj2_container.c:437 __ao2_find()
# 5: [0x7fc53965bcca] res_pjsip_outbound_publish.so res_pjsip_outbound_publish.c:563 sip_outbound_publish_client_get_publisher()
# 6: [0x7fc53965bd7f] res_pjsip_outbound_publish.so res_pjsip_outbound_publish.c:580 ast_sip_publish_client_get_user_from_uri()
# 7: [0x7fc539535435] res_pjsip_exten_state.so res_pjsip_exten_state.c:655 exten_state_publisher_cb()
# 8: [0x55e8e32d2dab] asterisk taskprocessor.c:1239 ast_taskprocessor_execute()
# 9: [0x55e8e32dd2f6] asterisk threadpool.c:1354 execute_tasks()
#10: [0x55e8e32d2dab] asterisk taskprocessor.c:1239 ast_taskprocessor_execute()
#11: [0x55e8e32dac11] asterisk threadpool.c:367 threadpool_execute()
#12: [0x55e8e32dca9b] asterisk threadpool.c:1137 worker_active()
#13: [0x55e8e32dc7fe] asterisk threadpool.c:1057 worker_start()
#14: [0x55e8e32e6ec7] asterisk utils.c:1299 dummy_start()
#15: [0x7fc587a64609] libpthread.so.0 pthread_create.c:478 start_thread()
#16: [0x7fc58769f293] libc.so.6 :0 clone()

Expected behaviour:
No FRACK! errors
Comments:By: Asterisk Team (asteriskteam) 2021-05-05 09:18:39.508-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.

Please note that by submitting data, code, or documentation to Sangoma through JIRA, you accept the Terms of Use present at [https://www.asterisk.org/terms-of-use/|https://www.asterisk.org/terms-of-use/].

By: Benjamin Keith Ford (bford) 2021-05-06 10:02:17.355-0500

A reload doesn't trigger the FRACK! for me. Since you're able to trigger it right after starting Asterisk and making one change, it's unlikely that something else is the suspect. Just to be sure though:
# Is this a clean checkout of 18.3.0? If not, are you able to reproduce it with a newly downloaded 18.3.0?
# Did this happen after an upgrade? If so, what version did you upgrade from?

By: Andrew Yager (andrewyager) 2021-05-06 17:40:45.481-0500

Clean source ball download of 18.3
This is a brand new build and actually am testing this feature for the first time here.

I do notice that I have to actually be transmitting hints to trigger it.

By: Benjamin Keith Ford (bford) 2021-05-10 10:43:46.615-0500

I have hints set up and was still not able to reproduce the issue. With the hints included, what is your config? I want to make sure we have a 1:1 setup in case it's something wrong on my end with that.

By: Asterisk Team (asteriskteam) 2021-05-24 12:00:00.492-0500

Suspended due to lack of activity. This issue will be automatically re-opened if the reporter posts a comment. If you are not the reporter and would like this re-opened please create a new issue instead. If the new issue is related to this one a link will be created during the triage process. Further information on issue tracker usage can be found in the Asterisk Issue Guidlines [1].

[1] https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines