I suspect that there may be compatibility issues between the new version of the TCP model and the old ndd_redis module during module initialization. I suspect that the processing logic triggered by this event occurred in the main process, which did not initialize the relevant context. I have attempted to modify the following code:

···
file:ndb_redis/ndb_redis_mod.c
151 if(rank == PROC_INIT || rank == PROC_MAIN || rank == PROC_TCP_MAIN)
modify:
151 if(rank == PROC_INIT || rank == PROC_MAIN )
···

Based on the above tests, it can be basically determined that the event_route event was triggered in the TCP main process, rather than in the expected child process, which is also the reason why it cannot obtain the context normally. I'm not sure if this handling is reasonable and won't cause any other problems, but it can indeed run normally. Is there any other better way? I speculate that the related issues should be quite common, whether it is better to solve them from the framework level rather than the module itself. And all operations are handled by the main process, and its performance is also worrying.


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <kamailio/kamailio/issues/3768/1963728833@github.com>