SIGSEGV в ngx_create_full_path()

Victor Antonovich v.antonovich на gmail.com
Ср Авг 18 18:08:31 MSD 2010


Всем привет!

Имеем: nginx 0.7.67 на Centos 5.5 i386.

После добавления в конфиг WEBDAV-location'а:

location /obr {
   allow 127.0.0.1;
   allow 192.168.1.0/24;
   deny all;
   alias /usr/local/cruisecontrol/data/m2/repository;
   dav_methods PUT DELETE MKCOL COPY MOVE;
   create_full_put_path on;
   dav_access group:rw all:r;
}

в error.log'е стали появляться сообщения:

2010/08/18 17:41:18 [alert] 9744#0: worker process 9746 exited on signal
11 (core dumped)
2010/08/18 17:41:18 [notice] 9744#0: start worker process 9761
2010/08/18 17:41:18 [notice] 9744#0: signal 29 (SIGIO) received
2010/08/18 17:41:22 [notice] 9744#0: signal 17 (SIGCHLD) received
2010/08/18 17:41:22 [alert] 9744#0: worker process 9758 exited on signal
11 (core dumped)
2010/08/18 17:41:22 [notice] 9744#0: start worker process 9769
2010/08/18 17:41:22 [notice] 9744#0: signal 29 (SIGIO) received
2010/08/18 17:41:23 [notice] 9744#0: signal 17 (SIGCHLD) received
2010/08/18 17:41:23 [alert] 9744#0: worker process 9761 exited on signal
11 (core dumped)

Анализ бектрейса показал следующую картинку:

#0  0x0805afb4 in ngx_create_full_path (dir=0x4 <Address 0x4 out of 
bounds>, access=3219832880) at src/core/ngx_file.c:194
#1  0x0809ca0e in ngx_http_dav_copy_move_handler (r=0x80d4aa0) at 
src/http/modules/ngx_http_dav_module.c:778
#2  0x08082f78 in ngx_http_test_expect (r=0x90fac44) at 
src/http/ngx_http_request_body.c:612
#3  0x0809c5e2 in lstat (r=0x90b8b30) at /usr/include/sys/stat.h:443
#4  ngx_http_dav_copy_move_handler (r=0x90b8b30) at 
src/http/modules/ngx_http_dav_module.c:684
#5  0x0807926c in ngx_http_auth_basic_user (r=0x90b8b30) at 
src/http/ngx_http_core_module.c:1807
#6  0x08074aab in ngx_http_init_listening (cf=0x90b8b30, cmd=0x80dc4d4, 
conf=0xbfeac1e8) at src/http/ngx_http.c:1648
#7  ngx_http_optimize_servers (cf=0x90b8b30, cmd=0x80dc4d4, 
conf=0xbfeac1e8) at src/http/ngx_http.c:1415
#8  ngx_http_block (cf=0x90b8b30, cmd=0x80dc4d4, conf=0xbfeac1e8) at 
src/http/ngx_http.c:377
#9  0x0807ab23 in ngx_http_send_special_response (r=0xdd13, clcf=<value 
optimized out>, err=151510896) at src/http/ngx_http_special_response.c:611
#10 0x08067a5f in ngx_handle_write_event (wev=0x807ab23, 
lowat=135120084) at src/event/ngx_event.c:374
#11 0x080678b3 in ngx_event_init_conf (cycle=0x907df70, conf=0x80dc4d4) 
at src/event/ngx_event.c:1219
#12 0x0806d299 in ngx_worker_process_init (cycle=0x907df70, 
priority=<value optimized out>) at src/os/unix/ngx_process_cycle.c:890
#13 0x0806b942 in ngx_signal_handler (signo=3) at 
src/os/unix/ngx_process.c:389
#14 0x0806c82c in ngx_master_process_exit (cycle=0x907df70) at 
src/os/unix/ngx_process_cycle.c:680
#15 0x0806dc73 in __memcpy_ichk (cycle=0x907df70) at 
/usr/include/bits/string3.h:51
#16 ngx_master_process_cycle (cycle=0x907df70) at 
src/os/unix/ngx_process_cycle.c:125
#17 0x0805473e in main (argc=3, argv=0xbfeac574) at src/core/nginx.c:376

Проблема наблюдается и на версии 0.6.39.

Это баг или фича? В принципе, с виду все работает, файлы создаются и 
изменяются, но такое поведение мне что-то не нравится.

Всем спасибо!
Виктор.



Подробная информация о списке рассылки nginx-ru