Welcome! Log In Create A New Profile

Advanced

negative size buf in writer после writev() not ready

November 24, 2019 06:45PM
Доброго всем дня!
Сейчас в процессе написания модуля для nginx по генерации PDF (https://github.com/undying/nginx-html2x-module/blob/master/src/ngx_http_html2x_module.c#L205) и наткнулся в процессе на странное.
Началось с того, что если тестировать локально, то генерация и отдача PDF работает.
Если разнести сервер и клиента на разные машины, начинаются проблемы.

В логе нашел следующее:
2019/11/24 23:22:31 [debug] 9#9: *1 http write filter limit 0
2019/11/24 23:22:31 [debug] 9#9: *1 writev: 44540 of 168186
2019/11/24 23:22:31 [debug] 9#9: *1 writev: -1 of 123646

2019/11/24 23:22:31 [debug] 9#9: *1 writev() not ready (11: Resource temporarily unavailable)

2019/11/24 23:22:31 [debug] 9#9: *1 http write filter 000055D3FDBEFF60
2019/11/24 23:22:31 [debug] 9#9: *1 http copy filter: -2 "/html2pdf?dpi=100"
2019/11/24 23:22:31 [debug] 9#9: *1 http finalize request: -2, "/html2pdf?dpi=100" a:1, c:1
2019/11/24 23:22:31 [debug] 9#9: *1 event timer add: 3: 60000:1302169663
2019/11/24 23:22:31 [debug] 9#9: *1 epoll add event: fd:3 op:3 ev:80002005
2019/11/24 23:22:32 [debug] 9#9: *1 http run request: "/html2pdf?dpi=100"
2019/11/24 23:22:32 [debug] 9#9: *1 http writer handler: "/html2pdf?dpi=100"
2019/11/24 23:22:32 [debug] 9#9: *1 http output filter "/html2pdf?dpi=100"
2019/11/24 23:22:32 [debug] 9#9: *1 http copy filter: "/html2pdf?dpi=100"
2019/11/24 23:22:32 [debug] 9#9: *1 write old buf t:0 f:0 00007FFFC360B460, pos 0000000000000000, size: 1254989623795351808 file: 94368983417552, size: -94368983417552

2019/11/24 23:22:32 [alert] 9#9: *1 negative size buf in writer t:0 r:0 f:0 00007FFFC360B460 0000000000000000-116A9E69E31F8100 000055D3FDBBFF00 94368983417552-0, client: 192.168.1.228, server: , request: "POST /html2pdf?dpi=100 HTTP/1.1", host: "html2x.domain.local"

2019/11/24 23:22:32 [debug] 9#9: *1 http copy filter: -1 "/html2pdf?dpi=100"
2019/11/24 23:22:32 [debug] 9#9: *1 http writer output filter: -1, "/html2pdf?dpi=100"

Насколько я понял, после первой пачки байт сокет становится занят и запись откладывается, но с наступлением таймера, при повторной попытке записи оказывается, что буфер для чтения пуст.
Пока не понял, почему так может быть. Был бы благодарен за любую подсказку.
Subject Author Posted

negative size buf in writer после writev() not ready

kron November 24, 2019 06:45PM

Re: negative size buf in writer после writev() not ready

kron November 24, 2019 06:49PM

Re: negative size buf in writer после writev() not ready

kron November 24, 2019 06:57PM

Re: negative size buf in writer после writev() not ready

Maxim Dounin November 25, 2019 07:20AM

Re: negative size buf in writer после writev() not ready

kron November 25, 2019 02:15PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 248
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready