Re: cvs commit: squid3/src main.cc

2007-04-12 Thread Duane Wessels




On Thu, 12 Apr 2007, Alex Rousskov wrote:


rousskov2007/04/12 08:51:10 MDT

 Modified files:
   src  main.cc
 Log:
 This change should fix bug #1837: Segfault on configuration error

 When quitting on a fatal error, such as a configuration error, Squid may need
 to write clean state/log files. Squid uses comm_ routines to do so. Thus, we
 must initialize comm_ before such fatal errors are discovered.

 Perhaps a better fix would be to avoid writing clean state/log files until
 the old ones become dirty?


The last comment is correct.  Squid should not write clean state files
until existing state files have been entirely read.

I fixed this bug a couple of days ago in the following revisions:

  1.88  +2 -2  squid3/src/store_rebuild.cc
  1.157 +9 -2  squid3/src/store_dir.cc

   store_dirs_rebuilding should be initialized to 1

   store_dirs_rebuilding is initialized to _1_ as a hack so that
   storeDirWriteCleanLogs() doesn't try to do anything unless _all_
   cache_dirs have been read.  For example, without this hack, Squid
   will try to write clean log files if -kparse fails (becasue it
   calls fatal()).


Sorry I did not realize there was a bugzilla entry for it.

I'd suggest backing out your patch.

DW


Re: cvs commit: squid3/src main.cc

2007-04-12 Thread Alex Rousskov
On Thu, 2007-04-12 at 18:16 -0600, Duane Wessels wrote:

 On Thu, 12 Apr 2007, Alex Rousskov wrote:
 
  rousskov2007/04/12 08:51:10 MDT
 
   Modified files:
 src  main.cc
   Log:
   This change should fix bug #1837: Segfault on configuration error
 
   When quitting on a fatal error, such as a configuration error, Squid may 
  need
   to write clean state/log files. Squid uses comm_ routines to do so. Thus, 
  we
   must initialize comm_ before such fatal errors are discovered.
 
   Perhaps a better fix would be to avoid writing clean state/log files until
   the old ones become dirty?
 
 The last comment is correct.  Squid should not write clean state files
 until existing state files have been entirely read.
 
 I fixed this bug a couple of days ago in the following revisions:
 
1.88  +2 -2  squid3/src/store_rebuild.cc
1.157 +9 -2  squid3/src/store_dir.cc
 
 store_dirs_rebuilding should be initialized to 1
 
 store_dirs_rebuilding is initialized to _1_ as a hack so that
 storeDirWriteCleanLogs() doesn't try to do anything unless _all_
 cache_dirs have been read.  For example, without this hack, Squid
 will try to write clean log files if -kparse fails (becasue it
 calls fatal()).
 
 
 Sorry I did not realize there was a bugzilla entry for it.
 I'd suggest backing out your patch.

With pleasure. I saw your store_dirs_rebuilding initialization hack but
thought it was added before the bug report.

Thank you,

Alex.