Mercurial > hg > nginx-quic
view docs/xml/change_log_conf.xml @ 5970:74edc0ccf27a
Core: fixed a race resulting in extra sem_post()'s.
The mtx->wait counter was not decremented if we were able to obtain the lock
right after incrementing it. This resulted in unneeded sem_post() calls,
eventually leading to EOVERFLOW errors being logged, "sem_post() failed
while wake shmtx (75: Value too large for defined data type)".
To close the race, mtx->wait is now decremented if we obtain the lock right
after incrementing it in ngx_shmtx_lock(). The result can become -1 if a
concurrent ngx_shmtx_unlock() decrements mtx->wait before the added code does.
However, that only leads to one extra iteration in the next call of
ngx_shmtx_lock().
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Wed, 04 Feb 2015 16:22:43 +0300 |
parents | 76bc29f06168 |
children |
line wrap: on
line source
<?xml version="1.0" ?> <!DOCTYPE configuration SYSTEM "../dtd/change_log_conf.dtd" > <configuration> <length>76</length> <start> *) </start> <indent> </indent> <changes lang="ru"> <title>Изменения в </title> <length>66</length> <bugfix>Исправление</bugfix> <feature>Добавление</feature> <change>Изменение</change> <security>Безопасность</security> <workaround>Изменение</workaround> </changes> <changes lang="en"> <title>Changes with </title> <length>65</length> <bugfix>Bugfix</bugfix> <feature>Feature</feature> <change>Change</change> <security>Security</security> <workaround>Workaround</workaround> <month> Jan </month> <month> Feb </month> <month> Mar </month> <month> Apr </month> <month> May </month> <month> Jun </month> <month> Jul </month> <month> Aug </month> <month> Sep </month> <month> Oct </month> <month> Nov </month> <month> Dec </month> </changes> </configuration>