I am storing things in a shared memory zone allocated with ngx_shared_memory_add and allocating each slab with ngx_slab_alloc_locked (as these items don’t need to be locked particularly). The problem I'm having is that I add the shared memory with exactly the amount I need. However, the final large thing to be allocated fails, but after this a lot more smaller things are also allocated without any problem. There is enough space for it but it has a problem with a large chunk when space is getting tight.
Does anyone know why this is or how to fix it? My guess was that nginx structures the shared memory in a way that means there is enough memory (which I have made sure there is) but it is not continuous.
Thanks.