<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html><body style='font-size: 10pt; font-family: Verdana,Geneva,sans-serif'>
<p>A little bit off-topic, but which benefits you think, you will get using cross process compiled regexp?</p>
<p>The compiling of regex is normally fast operation, that will be done only once (even jit), and can be done in each worker.<br />What I cannot imagine, is the sharing of the result of regexp execution. But not the regexp self.<br />Regards, sebres.<br /><br /></p>
<p>22.06.2016 11:31, MAGNIEN, Thierry wrote:</p>
<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px"><!-- html ignored --><!-- head ignored --><!-- meta ignored -->
<pre>Hi,

I'm experiencing a strange behavior and I wonder if I'm missing something obvious...

I've developed a module and I use shared memory and slab allocations to keep data unique across workers and have data survive a reload.

Everything works fine except one single thing: PCRE compiled codes (ngx_regex_compile_t->regex->code).

To be more precise, at reload, in my module init function, I recompile some of the PCRE if they have changed, still using shared memory. What I notice is that, just after init module function has returned, all dying workers lose PCRE compiled code (regex->code = 0), where all new created workers correctly get new compiled code.

I tried to use my own pcre_malloc function in order to be sure memory is allocated in shared memory (and this *is* the case), but without success.

So any help is welcome: does anyone have a clue about why only those data are "lost" by dying workers ?

Thanks a lot for your help,
Thierry Magnien

P.S.: I can't exhibit code for confidentiality reasons but if no one has a clue, I'll try to write a very simple module, only to exhibit this behavior.

_______________________________________________
nginx-devel mailing list
<a href="mailto:nginx-devel@nginx.org">nginx-devel@nginx.org</a>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-devel">http://mailman.nginx.org/mailman/listinfo/nginx-devel</a>
</pre>
</blockquote>
</body></html>