Every repository with this icon (
Every repository with this icon (
| Description: | Upload progress module for apache edit |
-
Apache/Passenger pair returns "Internet Server Error" when uploading large files
0 comments Created 4 months ago by ekontsevoyWhen I upload large (5-25MB) files, I get "Internal Server Error" at the end of download.
Here is the apache's error.log: http://pastie.org/522860It looks like the problem lies in mod_passenger, but when I disable upload_progress_module, everything starts working as usual.
As you can see from the log, I am running Apache/2.2.8 on Ubuntu 8.04 (latest LTS) with the latest mod_passenger and Ruby EE.
Playing with UploadProgressSharedMemorySize parameter helps a little, but I can always find a file which won't upload.
Feel free to contact me at ekontsevoy at profista dot com if you need help reproducing/fixing the issue.
Regards,
Eugueny KontsevoyEDIT: nevermind, I have upgraded to the latest Ruby EE and the issue went away. I can't find how can I delete it from Github though.
Comments
-
Segmentation fault (11) when mod_upload_progress loaded
3 comments Created 3 months ago by jonnWhen using the latest apache upload progress module (with changes as recent as 5-21-09) about 30% of uploads fail with a message like the following in the apache error_log:
[Wed Jul 15 15:45:23 2009] [notice] child pid 29196 exit signal Segmentation fault (11)
Requesting the progress after this happens with the corresponding X-Progress-ID continually returns a status of "starting".
I am running:
Apache 2.2.11
w/ Passenger 2.2.4/Rails 2.3.2I'm also using mod_rewrite and mod_xsendfile along with the default enabled modules of Apache.
I tried recompiling with --enable-exception-hook and loading mod_whatkilledus to get more info (per http://www.techds.in/2009/02/debugging-notorious-segmentation-fault.html) but was unable to gather any more useful information.
Recompiled again without --enable-exception-hook but kept the --enable-nonportable-atomics=yes option and the upload failures continue, but the corresponding error log entries now look like this:
*** glibc detected *** double free or corruption (out): 0x086f9b08 *** [Fri Jul 17 10:25:46 2009] [notice] child pid 6633 exit signal Aborted (6)
When I disable mod_upload_progress, uploading works consistently again.
Sorry I can not provide more helpful information.
- Jonn
Comments
A little more data...
I thought I'd try adding mod_porter to the mix, thinking maybe the upload progress module would play nicer with mod_porter in-between it and passenger. Occasional failures continue, but now the error logged is:
*** glibc detected *** free(): invalid pointer: 0x09264450 *** [Tue Jul 21 13:20:21 2009] [notice] child pid 2133 exit signal Aborted (6)
expandrive
Thu Sep 10 08:52:43 -0700 2009
| link
I'm seeing a similiar issue, Jonn. Are you running on open solaris?
No, I'm on a WestHost provided Linux VPS instance. I believe it is RedHat derived.
I'm still having the problem but I have not dug any deeper. I watch for the problem on the client and restart the upload when the server process crashes. This has been acceptable for the short-term, but I'll need to chase down the problem eventually. Please let me know if you make any progress on resolving the problem. I'll do the same.
- Jonn
-
I think should put this issue in the README file, or fix it.
Comments
Could you give a little bit more details? Does it crash, or not reports uploads, or maybe somehing else?
I'm using Archlinux and the /progress keeps hang until I found this:
Slobodan said
Jan 12, 2009 @ 12:50 AM
Peter, I debugged it and think I figured out what it was. My Apache configuration (2.2, ArchLinux) was loading all sorts of modules, including mod_mem_cache. Now for some reason the call to cache_free in line 434 was always crashing. To reproduce, I uploaded a file, waited 60s for the node to expire and submitted another file, at which point the worker process crashed at the call to cache_free.
From the backtrace I could see that the call to cache_free was calling the function with the same name, but in the mod_mem_cache, instead of the local one in the mod_upload_progress. How this was possible I still have no idea (or maybe I didn’t understand the code enough). As soon as I disabled mod_mem_cache, the progress tracking was working like a breeze.
It's in the comments of your blog post(http://drogomir.com/blog/2008/6/18/upload-progress-bar-with-mod_passenger-and-apache), and you said you are gonna to fix this issue. As Slobodan advised, I disabled mod_mem_cache, and progress tracking works. I didn't dig into the source code so I have no idea what's wrong.











