Opened 14 years ago

Closed 13 years ago

#3272 closed defect (fixed)

Unable to open file

Reported by: anonymous Owned by: xris
Priority: minor Milestone: unknown
Component: perl / nuvexport Version: head
Severity: medium Keywords:
Cc: Ticket locked: no


When using svn version 13149, nuvexport-dvd -transcode, mplex seems to get handed a bad file name. While the transcode is running an ls command shows these files: The_Out-_of-_Towners_-_Untitled.6538.m2v The_Out-_of-_Towners_-_Untitled.6538.mpa

The screen output is: Now encoding: The Out-of-Towners: Untitled Encode started: Fri Mar 30 22:11:24 2007 2007-03-30 22:11:25.026 Using runtime prefix = /usr/local 2007-03-30 22:11:25.076 New DB connection, total: 1 2007-03-30 22:11:25.081 New DB connection, total: 2 Waiting for mythtranscode to set up the fifos. Starting transcode. processed: 158464 of -42806 frames at 19.53 fps (-370.19%, eta: ) mythtranscode finished. processed: 158480 of -42806 frames at 19.53 fps (-370.23%, eta: ) transcode finished.

INFO: [mplex] mplex version 1.8.0 (2.2.4 $Date: 2005/08/28 17:50:54 $)

ERROR: [mplex] Unable to open file ./The_Out-_of-_Towners_-_Untitled.2.6538.m2v for reading.

Encode finished: Sat Mar 31 00:26:44 2007 Encode lasted: 2h 15m 20s

Cleaning up temp files.

Note: the file name that mplex complains about has an extra ".2" in the name.

Change History (4)

comment:1 Changed 14 years ago by dhighley@…

I put some debug print statements in and it looks like the episode hash variable is the issue. I have not found where it is getting set incorrectly.

comment:2 Changed 14 years ago by dhighley@…

Looked at the code some more and now I'm further puzzeled. In the the module: nuvexport/export/transcode/

The push to the tmpfiles array is works as the temporary files do get removed. The next line where the command is formulated for running mplex is where the issue occurs and the only difference I can see is the functions shell_escape is wrapped around the get_outfile function. In looking at the shell_sescape function I see nothing that would cause this issue. In fact I wrote a small test program using the shell_escape function passing the string to it and it worked. That left the one intermediate line, $self->SUPER::export($episode, ".$$");

When I commented out that line and tried running an nuvexport-dvd -transcode it failed immediately as the transcode operation never ran but the file name that was passed to the mplex program no longer had the extra ".2" characters. So the problem seems to be in the call to SUPER::export.

comment:3 Changed 14 years ago by dhighley@…

A work around until the code can be fixed is to move the line $self->SUPER::export($episode, ".$$"); after the line setting up the mplex command.

comment:4 Changed 13 years ago by xris

Resolution: fixed
Status: newclosed

(In [14999]) closes #3272. The error happened because get_outfile() automatically starts adding .2 or .3 to the filenames to avoid overwriting existing files. This adds a parameter to disable the check for those times where we just want a filename and know that the file already exists.

Note: See TracTickets for help on using tickets.