Page 3 of 13

Re: Play RAR files without extract them on SMB/NFS (RARFS?)

Posted: Tue Feb 14, 2012 10:04 pm
by hasse69
wooow. That is the first time I ever seen that error :(
Can you try -d switch instead of -f. It will dump some output from FUSE.

Re: Play RAR files without extract them on SMB/NFS (RARFS?)

Posted: Tue Feb 14, 2012 10:07 pm
by juusso
Hehe, this is our samy...

Code: Select all

# rar2fs --exclude=.lock --fake-iso --seek-length=2 -o allow_other ./shrek.rar ./test -d
FUSE library version: 2.8.4
nullpath_ok: 0
unique: 1, opcode: INIT (26), nodeid: 0, insize: 56
INIT: 7.8
flags=0x00000003
max_readahead=0x00020000
   INIT: 7.12
   flags=0x00000010
   max_readahead=0x00020000
   max_write=0x00020000
   unique: 1, success, outsize: 40
unique: 2, opcode: GETATTR (3), nodeid: 1, insize: 40
getattr /
   unique: 2, success, outsize: 112
unique: 3, opcode: GETATTR (3), nodeid: 1, insize: 40
getattr /
   unique: 3, success, outsize: 112
unique: 4, opcode: OPENDIR (27), nodeid: 1, insize: 48
   unique: 4, success, outsize: 32
unique: 5, opcode: GETATTR (3), nodeid: 1, insize: 40
getattr /
   unique: 5, success, outsize: 112
unique: 6, opcode: READDIR (28), nodeid: 1, insize: 64
readdir[0] from 0
   unique: 6, success, outsize: 144
unique: 7, opcode: LOOKUP (1), nodeid: 1, insize: 80
LOOKUP /Shrek.3D.2004.DVDRip.XviD (_eWiLL_).avi
getattr /Shrek.3D.2004.DVDRip.XviD (_eWiLL_).avi
   NODEID: 2
   unique: 7, success, outsize: 136
unique: 8, opcode: READDIR (28), nodeid: 1, insize: 64
   unique: 8, success, outsize: 16
unique: 9, opcode: LOOKUP (1), nodeid: 1, insize: 80
LOOKUP /Shrek.3D.2004.DVDRip.XviD (_eWiLL_).avi
getattr /Shrek.3D.2004.DVDRip.XviD (_eWiLL_).avi
   NODEID: 2
   unique: 9, success, outsize: 136
unique: 10, opcode: OPEN (14), nodeid: 2, insize: 48
open flags: 0x0 /Shrek.3D.2004.DVDRip.XviD (_eWiLL_).avi
   open[714552] flags: 0x0 /Shrek.3D.2004.DVDRip.XviD (_eWiLL_).avi
   unique: 10, success, outsize: 32
unique: 11, opcode: READ (15), nodeid: 2, insize: 64
read[714552] 16384 bytes from 0 flags: 0x0
   read[714552] 16384 bytes from 0
   unique: 11, success, outsize: 16400
unique: 12, opcode: FLUSH (25), nodeid: 2, insize: 64
flush[714552]
   unique: 12, success, outsize: 16
unique: 13, opcode: RELEASE (18), nodeid: 2, insize: 64
release[714552] flags: 0x0
terminate called without an active exception
Aborted

Also this always confusing me - mounted files aren`t visible on samba or NFS mounts.

EDIT: ok, i see i have to read the rar2fs comunity page on google to get some answers. Thanks for helping, Hans :)
sorry, htg to spend some attention to my wife, you know, Valentine`s day ... :oops:

Re: Play RAR files without extract them on SMB/NFS (RARFS?)

Posted: Tue Feb 14, 2012 10:20 pm
by hasse69
Hmmm. From the looks of it everything works fine until the first read. The first read is most probably an access made by the MediaPlayer to read the header.
Then it is closed by the MediaPlayer. But for some reason the close results in the unexpected death of a thread :(
We can take the Samba/NFS issue later, seems that it does not make sense to solve that until I can figure out why rar2fs crash on this system.
What we (or actually you since I can obviously not reproduce this error myself) is to build rar2fs in debug mode. You do that by specifying --enable-debug
in the list of options to configure. Then you run it with the -f switch (not -d). Note that this will produce a lot of output so attach it as a file ;)

Re: Play RAR files without extract them on SMB/NFS (RARFS?)

Posted: Tue Feb 14, 2012 10:22 pm
by juusso
Ok, will re-compile it tomorrow, i believe we get all issues fixed. Thanks and cu. :)

Re: Play RAR files without extract them on SMB/NFS (RARFS?)

Posted: Tue Feb 14, 2012 10:24 pm
by hasse69
juuso wrote:Ok, will re-compile it tomorrow, i believe we get all issues fixed. Thanks and cu. :)
No problem. But also, just to out rule one posibility. Can you try to mount the source folder that *contains* the .rar file instead of mounting the actual file to ./test?
Just want to see if it makes a difference or not.

Re: Play RAR files without extract them on SMB/NFS (RARFS?)

Posted: Wed Feb 15, 2012 9:26 am
by juusso
Mounting directory, containing rar files gives no error, but trying to access this directory, console freezes and mediaplayer is showing endless "loading" - i think it couldn`t reach files inside that dir.
Exlink debug:

Code: Select all

               
 ======> CMediaControlMovie: SetMedia  = file:///dtv/usb/sda/TV/rar/test/Shrek.3D.avi

[GetFileSize] stat failed
[CopyCaptionFileToRamDisk:3131] Read File Create failed
[CMovieCore] SetDisplaySize In
[CFileMovieCore] Open In
[CMovieCore] CanSeek In
[CFileMovieCore] Pause In
[ROSE_ERROR ] [Pause:305]m_bPlayMode Error
[CMovieCore] CanSeek In
[CFileMovieCore] Close In
[CMovieCore] Close In
[ROSE_ERROR ] [CMovieCore::Close] error Not Open
Btw, just checked, using:

Code: Select all

# rar2fs -V
rar2fs v1.13.32 build 282 (DLL version 5)    Copyright (C) 2009-2012 Hans Beckerus

Now compiled latest version from svn

Code: Select all

# make -f ./Makefile.mk -o --enable-debug

Code: Select all

# ./rar2fs -V
rar2fs v1.14.0 build 282 (DLL version 5)    Copyright (C) 2009-2012 Hans Beckerus
Got same error and no extra debug output:

Code: Select all

# rar2fs --exclude=.lock --fake-iso --seek-length=2 -o allow_other ./Shrek.3D.rar ./test -f
terminate called without an active exception
Aborted

Code: Select all

# rar2fs --exclude=.lock --fake-iso --seek-length=2 -o allow_other ./Shrek.3D.rar ./test -d
FUSE library version: 2.8.4
nullpath_ok: 0
unique: 1, opcode: INIT (26), nodeid: 0, insize: 56
INIT: 7.8
flags=0x00000003
max_readahead=0x00020000
   INIT: 7.12
   flags=0x00000010
   max_readahead=0x00020000
   max_write=0x00020000
   unique: 1, success, outsize: 40
unique: 2, opcode: GETATTR (3), nodeid: 1, insize: 40
getattr /
   unique: 2, success, outsize: 112
unique: 3, opcode: GETATTR (3), nodeid: 1, insize: 40
getattr /
   unique: 3, success, outsize: 112
unique: 4, opcode: OPENDIR (27), nodeid: 1, insize: 48
   unique: 4, success, outsize: 32
unique: 5, opcode: GETATTR (3), nodeid: 1, insize: 40
getattr /
   unique: 5, success, outsize: 112
unique: 6, opcode: READDIR (28), nodeid: 1, insize: 64
readdir[0] from 0
   unique: 6, success, outsize: 120
unique: 7, opcode: LOOKUP (1), nodeid: 1, insize: 53
LOOKUP /Shrek.3D.avi
getattr /Shrek.3D.avi
   NODEID: 2
   unique: 7, success, outsize: 136
unique: 8, opcode: READDIR (28), nodeid: 1, insize: 64
   unique: 8, success, outsize: 16
unique: 9, opcode: LOOKUP (1), nodeid: 1, insize: 53
LOOKUP /Shrek.3D.avi
getattr /Shrek.3D.avi
   NODEID: 2
   unique: 9, success, outsize: 136
unique: 10, opcode: OPEN (14), nodeid: 2, insize: 48
open flags: 0x0 /Shrek.3D.avi
   open[714384] flags: 0x0 /Shrek.3D.avi
   unique: 10, success, outsize: 32
unique: 11, opcode: READ (15), nodeid: 2, insize: 64
read[714384] 16384 bytes from 0 flags: 0x0
   read[714384] 16384 bytes from 0
   unique: 11, success, outsize: 16400
unique: 12, opcode: FLUSH (25), nodeid: 2, insize: 64
flush[714384]
   unique: 12, success, outsize: 16
unique: 13, opcode: RELEASE (18), nodeid: 2, insize: 64
release[714384] flags: 0x0
terminate called without an active exception
Aborted

Re: Play RAR files without extract them on SMB/NFS (RARFS?)

Posted: Wed Feb 15, 2012 10:17 am
by hasse69
You most likely have stale obsolete files in your build directory.
Since you got to version 1.14.0 by recompiling there seems to be a mismatch somewhere.
Can you use automake on this platform ?
The old make system that you are using does not support --enable-debug, also the old make system is obsoleted with the release of 1.14.0.
I think it would be a good idea if you used ./configure;make procedure instead. It is more portable.
If you for some reason must stick to the old make, do a 'make clean;make DEBUG=4'

From the looks of your MediaPlayer log it looks like it fails to obtain stats of the file. It is most likely some access problem to the mounted folder.
Do you know what effective user id the MediaPlayer is using when accessing the file system ?
It was a little strange that you mount point shows uid=99,gid=99 of the file. Since you mounted as root it should be 0.
Do a ls -l on the file too, I wish to see how it looks like.

Re: Play RAR files without extract them on SMB/NFS (RARFS?)

Posted: Wed Feb 15, 2012 10:24 am
by juusso
hasse69 wrote:Can you use automake on this platform ?
Since ./configure is not found, i used another way... I`m not sure what command should i use. I always use make clean before to compile something. Now trying with DEBUG=4.
hasse69 wrote:Do you know what effective user id the MediaPlayer is using when accessing the file system ?
No idea.

Re: Play RAR files without extract them on SMB/NFS (RARFS?)

Posted: Wed Feb 15, 2012 10:27 am
by hasse69
./configure you get if you download the tar-ball from the site instead of getting it from the trunk.
If you took it from the trunk you do:

Code: Select all

# autoreconf -f -i
# ./configure <options>

Re: Play RAR files without extract them on SMB/NFS (RARFS?)

Posted: Wed Feb 15, 2012 10:29 am
by juusso
DEBUG=4:

Code: Select all

# rar2fs --exclude=.lock --fake-iso --seek-length=2 -o allow_other ./Shrek.3D.rar ./test -f
rar2_init()
rar2_getattr2()   /
MISS    /   (collision: no)
STAT retrieved for /dtv/usb/sda/TV/rar/
rar2_getattr2()   /
MISS    /   (collision: no)
STAT retrieved for /dtv/usb/sda/TV/rar/
rar2_getattr2()   /
MISS    /   (collision: no)
STAT retrieved for /dtv/usb/sda/TV/rar/
rar2_readdir2()   /
listrar()   /   arch=/dtv/usb/sda/TV/rar/Shrek.3D.rar
Looking up /Shrek.3D.avi in cache
Adding /Shrek.3D.avi to cache
rar2_getattr2()   /Shrek.3D.avi
rar2_getattr2()   /Shrek.3D.avi
rar2_open()   /Shrek.3D.avi
(00858) OPEN    /Shrek.3D.avi [0x0][called from 00279]
(00858) ALLOC   /Shrek.3D.avi [0xb06d0         ]
PIPE 0xb0740 created towards child 879
Reader thread started, fp=0xb0740
preload_index()   /Shrek.3D.avi
Preloading index for /dtv/usb/sda/TV/rar/Shrek.3D.r2i
rar2_read()   /Shrek.3D.avi   size=16384, offset=0, fh=722640
PID 00858 calling lread_rar(), seq = 1, size=16384, offset=0/0
Reader thread wakeup, select()=1
Reader thread wakeup, select()=1
Reader thread acknowledge
1083434128 thread wakeup (1, 1)
lread_rar: RETURN 16384
rar2_flush()   /Shrek.3D.avi
(00858) FLUSH   /Shrek.3D.avi [0xb06d0         ][called from 00279]
lflush()   /Shrek.3D.avi
rar2_release()   /Shrek.3D.avi
(00858) RELEASE /Shrek.3D.avi [0xb06d0         ]
Reader thread stopped
terminate called without an active exception
Aborted
now making autoreconf usw.
EDIT:
Got error while compiling, decided to add -i key to ignore errors. Is it important?:

Code: Select all

sighandler.c: In function 'stack_trace':
sighandler.c:58: warning: unused variable 'uc'
At top level:
cc1: error: unrecognized command line option "-Wno-unused-result"
make[1]: [sighandler.o] Error 1 (ignored)
mv -f .deps/sighandler.Tpo .deps/sighandler.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I.  -I./unrar -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -DNDEBUG -Wall -g -O2 -DSVNREV=282 -fno-omit-frame-pointer -Wno-unused-result -pthread -MT rar2fs.o -MD -MP -MF .deps/rar2fs.Tpo -c -o rar2fs.o rar2fs.c
mv -f .deps/rar2fs.Tpo .deps/rar2fs.Po
gcc -std=gnu99 -o rar2fs dllext.o configdb.o filecache.o iobuffer.o sighandler.o rar2fs.o -pthread -rdynamic     -lfuse -lunrar -lstdc++
gcc: sighandler.o: No such file or directory
make[1]: [rar2fs] Error 1 (ignored)
gcc -std=gnu99 -DHAVE_CONFIG_H -I.  -I./unrar -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -DNDEBUG -Wall -g -O2 -DSVNREV=282 -fno-omit-frame-pointer -Wno-unused-result -pthread -MT mkr2i.o -MD -MP -MF .deps/mkr2i.Tpo -c -o mkr2i.o mkr2i.c
mv -f .deps/mkr2i.Tpo .deps/mkr2i.Po
gcc -std=gnu99 -o mkr2i mkr2i.o -rdynamic
make[1]: Leaving directory `/mnt/disk1/tmp/compile/rar2fs'