Dear APR devs,

I need help regarding apr pools and the assumptions they make, especially in 
debug mode.

Background: there are reports of read after free and failed assertions when 
httpd's HTTP/2 implementation is used with pool debugging. 

From scanning the code, I can see two issues at least:
1. pool debugging will on certain events traverse the pool tree. This seems not 
a good idea as h2 may have child pools active in several threads. And there is 
no global mutex for all pools - that is unwanted.
2. The thread creating the pool is checked against the current thread in 
apr_pool_check_integrity() which is certainly not true all the time in h2. 
Pools are created in one thread and then passed to another.

Now, I am not asking for revolutionary changes in apr pools to cope with my 
implementation. But to change my implementation to work in pool debugging, I 
need to understand the restrictions and underlying assumptions clearly. 

Before dumping the h2 pool usage description on the list here, maybe there is 
someone willing to work with me on this closely? If the list prefers a detailed 
discussion here, I can of course also do that.

Please advise.

Cheers, Stefan

Reply via email to