getCodecs fails if input file isn't on boot volume
Reported by Christopher Stawarz | April 6th, 2010 @ 01:09 PM | in 0.4.5 (closed)
The MATLAB getCodecs function (in mw_datatools/MatlabDataReader) fails with a Boost error if the data file isn't on the boot volume:
>> d1 = getCodecs('/Documents/MonkeyWorks/Data/MARIONETTE.StimulusPresentTest.mwk')
d1 =
time_us: 6450032
codec: [23x1 struct]
>> d2 = getCodecs('/Volumes/FreeAgent 2/MARIONETTE.StimulusPresentTest.mwk')
??? Unexpected Standard exception from MEX file.
What() is:boost::filesystem::rename: Cross-device link: "/Volumes/FreeAgent
2/MARIONETTE.StimulusPresentTest.mwk",
"/var/folders/v1/v1qsITo9GJezLwbJ2VOfM++++TI/-Tmp-/MARIONETTE.StimulusPresentTest.mwk"
It looks like it's trying to create a temporary file. Why?
Comments and changes to this ticket
-
Christopher Stawarz July 6th, 2010 @ 01:45 PM
- Milestone set to 0.4.5
- State changed from new to open
- Milestone order changed from 0 to 0
The issue is in dfindex, so it affects the Python data interface, too. The failure happens because dfindex::dfindex uses boost::filesystem::rename to move the original data file to a temporary directory (presumably on the root volume under /tmp or /var). I'm guessing that bf::rename uses POSIX rename, which doesn't work between different filesystems.
-
Christopher Stawarz July 8th, 2010 @ 12:59 PM
- State changed from open to resolved
Fixed in mw_datatools commit 6f7c995f1ac6ed2244fd0e076795baf7b756538c
Please Sign in or create a free account to add a new ticket.
With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป
MWorks accessory libraries, build system, etc.