I think I found something that could have been caused the issue, respectively 
setting the AVPs lists from transaction in the process context inside the http 
async callback function. It was done for the case when transaction was 
suspended and no cleaned up, living further in the context of the process and 
when the async callback was executed for a non-suspended-transaction case (with 
faked_msg), then the local avps are cleaned up, but they belonged to a past 
transaction, already destroyed (along with avps).

So this case could happen when there is a mix usage of http async with 
suspended=1 as well as with suspended=0. Code was rather old, but maybe nobody 
used the module mixed suspending modes. 

IMO, there is no need to set avps lists to process local in the process, 
because it is done by faked_env which is used inside t_continue function before 
executing the routing block, so the avps are available inside the config block.

I pushed the commit 1bc3bbd -  @grumvalski can you check it and analyze if 
there are some side effects by removing those lines? I couldn't spot when AVPs 
would be needed before the use of fake_env() by t_continue(), but I am not that 
familiar with http async module internals. If some unwanted effects, then the 
commit can be reverted. Or if all looks ok and tests are fine, then it can be 
backported.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/2286#issuecomment-615366413
_______________________________________________
Kamailio (SER) - Development Mailing List
sr-dev@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to