[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#525137: apache2.2-common: "could not get next bucket brigade" while a client is doing a PUT results in data loss



Package: apache2.2-common
Version: 2.2.9-10+lenny2
Severity: grave
Justification: causes data loss

I've got a bunch of calendar clients configured to download and upload
icalendar files to a web location backed by mod_dav.

Occasionally there will be an error when one client is uploading the calendar
file, which cases the file to be deleted:

 10.0.0.1 alice [22/Apr/2009:13:42:12 +0100] "GET /cal/bob HTTP/1.1" 200 20480 text/calendar "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.21) Gecko/20090302 Lightning/0.9 Thunderbird/2.0.0.21"
 10.0.0.1 alice [22/Apr/2009:13:39:51 +0100] "PUT /cal/bob HTTP/1.1" 500 390 text/html "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.21) Gecko/20090302 Lightning/0.9 Thunderbird/2.0.0.21"
 10.0.0.1 bob [22/Apr/2009:13:44:54 +0100] "GET /cal/bob HTTP/1.1" 404 289 text/html "-" "Evolution/2.24.5"

Unfortunately, the only message that appears in the error log file is the
mysterious message:

 [Wed Apr 22 13:44:53 2009] [error] [client 10.0.0.1] Could not get next bucket brigade  [500, #0]

IMO, mod_dav should replace files not by truncating them, but by writing out a
temporary file and then renaming it over the original file. That way, files
can be replaced atomically, and so the failure to write the file does not
result in the loss of the data.

Unfortunately I have no way to reproduce this problem on demand. From my
recollection, it seems to happen about once every two months. I am erring
on the side of cauting WRT the bug severity, please feel free to downgrade
if you disagree.

-- Package-specific info:
Loaded Modules:
 core_module (static)
 log_config_module (static)
 logio_module (static)
 mpm_worker_module (static)
 http_module (static)
 so_module (static)
 actions_module (shared)
 alias_module (shared)
 auth_basic_module (shared)
 authn_file_module (shared)
 authz_default_module (shared)
 authz_groupfile_module (shared)
 authz_host_module (shared)
 authz_user_module (shared)
 autoindex_module (shared)
 cgid_module (shared)
 dav_module (shared)
 dav_fs_module (shared)
 deflate_module (shared)
 dir_module (shared)
 env_module (shared)
 expires_module (shared)
 fcgid_module (shared)
 headers_module (shared)
 mime_module (shared)
 negotiation_module (shared)
 perl_module (shared)
 python_module (shared)
 rewrite_module (shared)
 setenvif_module (shared)
 ssl_module (shared)
 status_module (shared)
 suexec_module (shared)
 userdir_module (shared)
Syntax OK



Reply to: