<div dir="ltr"><div><div><div>Hello Valentin,<br><br></div>thank you very much :-)<br></div>Well... this was one of the rare examples I obviously did not check today.<br><br></div>Regards,<br>Jure Menart<br></div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Sat, Aug 31, 2013 at 11:08 PM, Valentin V. Bartenev <span dir="ltr"><<a href="mailto:vbart@nginx.com" target="_blank">vbart@nginx.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">On Sunday 01 September 2013 00:35:20 Jure Menart wrote:<br>
> Dear all,<br>
><br>
> I'm new to the Nginx project and I am just getting familiar with it. Let me<br>
> first thank to the contributors for the work they've put into to make the<br>
> project so nice.<br>
><br>
> I've observed very 'strange' behaviour and took me quite a lot time to find<br>
> the cause for it (not to understand it yet). Let me start in the beginning:<br>
> - I've been playing with Hello world examples of course and then started to<br>
> build bigger 'real' module.<br>
> - Suddenly I've got very unpredictable behaviour and seg. faults.<br>
> - I've stripped down my module back to real bare minimum - at the end I<br>
> just included one command which sends "Hello world" string back to the<br>
> client. The thing was still acting very strange: ngx_http_request_t seems<br>
> 'unstable' - r->method with strange numbers, if I wanted to log in<br>
> r->connection->log I've got seg. fault, ... I'm fairly sure my test module<br>
> does not hot have any memory leaks because I am using only one static<br>
> string which is put to the output buffer.<br>
> - In the end I've removed the system C includes (sys/types.h, sys/stat.h,<br>
> unistd.h) and my simple example started to work again - I've tried few<br>
> times to add includes, put them before Nginx includes or after - it was<br>
> very repeatable and the module was stable if I either did not include or<br>
> include them after Nginx module:<br>
> For example:<br>
> <-- snip --><br>
> #include <sys/types.h><br>
> #include <sys/stat.h><br>
> #include <unistd.h><br>
><br>
> #include <ngx_config.h><br>
> #include <ngx_core.h><br>
> #include <ngx_http.h><br>
> <-- snip --><br>
><br>
> Crashes my module, while:<br>
> <-- snip --><br>
> #include <ngx_config.h><br>
> #include <ngx_core.h><br>
> #include <ngx_http.h><br>
><br>
> #include <sys/types.h><br>
> #include <sys/stat.h><br>
> #include <unistd.h><br>
> <-- snip --><br>
><br>
> Seems to work.<br>
><br>
> My question: Did anybody observed this behaviour? Obviously the system<br>
> includes can influence/change the includes in the Nginx. If this is known,<br>
> are there any special limitations while including system headers?<br>
> For sure this kind of behaviour is not nice and maybe it can be counted as<br>
> bug (or at least be documented).<br>
><br>
<br>
</div></div>There is a commentary in the C++ example module (the only example that we have):<br>
<a href="http://trac.nginx.org/nginx/browser/nginx/src/misc/ngx_cpp_test_module.cpp#L19" target="_blank">http://trac.nginx.org/nginx/browser/nginx/src/misc/ngx_cpp_test_module.cpp#L19</a><br>
<br>
 // nginx header files should go before other, because they define 64-bit off_t<br>
<br>
  wbr, Valentin V. Bartenev<br>
<br>
_______________________________________________<br>
nginx-devel mailing list<br>
<a href="mailto:nginx-devel@nginx.org">nginx-devel@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-devel" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-devel</a><br>
</blockquote></div><br></div>