Hey Dan

Thanks a lot for that - Duane is looking at this at the moment.

Would you mind adding this as a comment to the bug?

Cheers
Doug


On 18 May 2006, at 05:27, Dan Thomson wrote:

Hey all,

I've recently been playing with squid 3 trying to figure out this
n->write_pending problem in mem_node.cc.

I've noticed that whenever memNodeWriteComplete is called and
n->write_pending is still set (causing assert to abort), the actual
mem_node object isn't holding any data (n->dataRange()) gives nothing.

I've also noticed a few conditions where a file will be written to
disk and then unlinked before mem_node::memNodeWriteComplete gets the
chance to run. This doesn't seem to happen every time the assert
fails, but it has happened quiet often in my experience.

I've made a small fix for myself by editing the assert as follows:

assert(n->write_pending || (n->end() - n->start()) == 0);

The problem seems to have dissapeared. I'm aware that this isn't a
proper fix, but I'm hoping that some of this info might help shed some
light on the core problem to those of you that know the code a lot
better than I do.

Thanks!

Dan Thomson
Systems Engineer
Peer1 Network
1600 555 West Hastings
Vancouver, BC
V6B 4N5
866-683-7747
http://www.peer1.com

  • bug # 1465 Dan Thomson
    • Re: bug # 1465 Doug Dixon

Reply via email to