Closed (fixed)
Project:
Video
Version:
6.x-4.2-beta2
Component:
Code
Priority:
Critical
Category:
Bug report
Assigned:
Unassigned
Reporter:
Created:
1 Feb 2011 at 12:38 UTC
Updated:
14 Jan 2012 at 14:27 UTC
I have a very strange issue with all versions of the module. For smaller files everything works almost perfectly, but for larger ones (40MB +) the actual transcoding (which started with manualy cron run) gives a lot of mysql error and finally the server gone away.
It was tested on OpenSolaris and Linux, PHP 5.2.9 and 5.2.16, MySql 5.1.30 and 5.0.91.
The all I can figure out is that the conversion process wants to update watchdog table, and the Mysql gone away.
Is anybody has the same issuse?
Comments
Comment #1
bcobin commentedI'm currently testing with very small files to save time, but when I first started experimenting with the module, I wasn't able to encode videos longer than, say 1:30.
I'm currently "stuck" at an earlier phase, though, in trying to get HTML5 to work - one thing at a time. But for now, +1 in having experienced the same problem.
(As an aside - and without changing the issue - if you have a working OGG preset, that would be helpful!)
Comment #2
hypertext200I recommend you to use CDN and Separate transcoder when u have large files.
Comment #3
jorrit commentedPerhaps the problem relates to the PHP execution timeout? Is this still a problem?
Comment #4
bcobin commentedI've actually "punted" here and am just using Embedded Media. The next time I have a long-form video I don't want to publish to YouTube, I'll revisit the issue and see what the status is.
I have several issues with Video and I'll be posting the same basic message to all - thanks for checking in, Jorrit!
Comment #5
jorrit commentedThanks for replying. I will test it for myself with large video files. If anyone else experiences this on a Drupal installation that is currently active, please reopen or open a new issue.
Comment #6
Daeluin commentedAlso having this issue.
Able to upload ~100meg video files just fine, but a 700meg upload reaches 100% and then nothing.
The local PHP error_log showed a "MySQL Server has gone away" error, and I was able to resolve this by adding "mysqli.reconnect = On" in a local php.ini.
There was also a global apache error "Script timed out before returning headers" error and this has not gone away.
We have "Enable Video Conversion" unchecked, but as soon as the upload reaches 100% I see an ffmpeg process running on the server (to generate the thumbnails?), and when this finishes we get the "Script timed out" error. The upload page does nothing, just says 100% but doesn't complete or add thumbnails.
Here's what we've tried:
Not getting any pcre errors, or really anything but the "Script timed out before returning headers." I'm assuming MySQL is OK not with the reconnect setting, at least not getting any errors from MySQL any more. Is this the execution timeout that was mentioned, and is there anything I can set for this?
Thanks!
Comment #7
Daeluin commentedComment #8
Daeluin commentedYep, 4.7 gets the same global apache error, but this time the page status on the upload changes to:
An HTTP error 0 occurred. /filefield/progress/f885ec58d8f2912db009c5f50003f6f5
Comment #9
jorrit commentedCould you estimate how long it takes to upload the entire file? Is it longer than 600 seconds? If so, please increase the max_execution_time and max_input_time values.
Comment #10
jorrit commentedComment #11
Daeluin commentedMy understanding was the input/exec times didn't run/count during an upload, just during processing - is that wrong?
But I tried it to be sure. Set to 2h:
max_input_time = 7200
max_execution_time = 7200
The upload took <1h and returned the same error:
Script timed out before returning headers: index.php, referer: http://example.com/node/add/video
Comment #12
jorrit commentedThe message
Script timed out before returning headersis not generated by PHP, but by Apache, probably in combination with mod_wsgi. Please see if increasing the Apache TimeOut setting helps for you.Comment #13
Daeluin commentedSet timeout 3600 and that did the trick. Phew.
So, do I need the Apache timeout to be large enough to cover the entire upload time, or just the processing? I think the default was 30, I'll try adjusting this tomorrow and find out.
Comment #14
Daeluin commentedLowered everything down to about 300 and it still works.
Thanks so much for your help with this!
Comment #15
jorrit commentedI have added code to take care of database timeouts, but I unfortunately can't prevent Apache timeouts.