Page 6 of 13

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

Posted: Mon Feb 20, 2012 7:06 pm
by juusso
Test6. D6750 and sligtly compressed rar (same as for test 1 and 2 on B series TV). Result: Fail

Code: Select all

source /dtv/SGO.env
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/nfs/192.168.1.200/_mnt_disk1_TV/rar/
rar2_readdir2()   /
listrar()   /   arch=/dtv/usb/sda/nfs/192.168.1.200/_mnt_disk1_TV/rar/Shrek.3D.rar
Looking up /Shrek.3D.avi in cache
Adding /Shrek.3D.avi to cache
rar2_getattr2()   /
MISS    /   (collision: no)
STAT retrieved for /dtv/usb/sda/nfs/192.168.1.200/_mnt_disk1_TV/rar/
rar2_getattr2()   /
MISS    /   (collision: no)
STAT retrieved for /dtv/usb/sda/nfs/192.168.1.200/_mnt_disk1_TV/rar/
rar2_getattr2()   /Shrek.3D.avi
rar2_getattr2()   /
MISS    /   (collision: no)
STAT retrieved for /dtv/usb/sda/nfs/192.168.1.200/_mnt_disk1_TV/rar/
rar2_getattr2()   /Shrek.3D.avi
rar2_getattr2()   /
MISS    /   (collision: no)
STAT retrieved for /dtv/usb/sda/nfs/192.168.1.200/_mnt_disk1_TV/rar/
rar2_getattr2()   /Shrek.3D.avi
rar2_open()   /Shrek.3D.avi
(01190) OPEN    /Shrek.3D.avi [0x0][called from 00511]
(01190) ALLOC   /Shrek.3D.avi [0xa83d0         ]
PIPE 0xa8440 created towards child 1229
Reader thread started, fp=0xa8440
Reader thread wakeup, select()=1
preload_index()   /Shrek.3D.avi
Preloading index for /dtv/usb/sda/nfs/192.168.1.200/_mnt_disk1_TV/rar/Shrek.3D.r2i
rar2_read()   /Shrek.3D.avi   size=16384, offset=0, fh=689104
PID 01190 calling lread_rar(), seq = 1, size=16384, offset=0/0
Reader thread wakeup, select()=1
Reader thread acknowledge
1080484960 thread wakeup (1, 1)
Reader thread wakeup, select()=1
Reader thread acknowledge
1080484960 thread wakeup (1, 2)
Reader thread wakeup, select()=1
lread_rar: RETURN 0
rar2_flush()   /Shrek.3D.avi
(01190) FLUSH   /Shrek.3D.avi [0xa83d0         ][called from 00511]
lflush()   /Shrek.3D.avi
rar2_release()   /Shrek.3D.avi
(01190) RELEASE /Shrek.3D.avi [0xa83d0         ]
Reader thread wakeup, select()=1
Reader thread stopped
terminate called without an active exception
/lib/libc.so.6(abort+0x38)[0x419116f0]
/lib/libstdc++.so.6(_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x114)[0x41adc424]
/lib/libstdc++.so.6[0x41ad9be8]
/lib/libstdc++.so.6(_ZSt9terminatev+0x1c)[0x41ad9c10]
/lib/libstdc++.so.6(__gxx_personality_v0+0xa78)[0x41ad9b80]
/lib/libgcc_s.so.1[0x41d90660]

##### VD-GLIBC Warning message, func : abort() called, start backtracing...

backtrace() returned 6 addresses
Aborted
MediaPlayer gave "unrecognized file format".

Nex try after reboot - Mediaplyer error same, strace log attached.

Code: Select all

strace -o /dtv/usb/sda/strace.log 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/nfs/192.168.1.200/_mnt_disk1_TV/rar/
rar2_getattr2()   /Shrek.3D.avi
MISS    /Shrek.3D.avi   (collision: no)
rar2_getattr2()   /Shrek.3D.avi
MISS    /Shrek.3D.avi   (collision: no)
rar2_getattr2()   /
MISS    /   (collision: no)
STAT retrieved for /dtv/usb/sda/nfs/192.168.1.200/_mnt_disk1_TV/rar/
rar2_getattr2()   /Shrek.3D.avi
MISS    /Shrek.3D.avi   (collision: no)
rar2_getattr2()   /
MISS    /   (collision: no)
STAT retrieved for /dtv/usb/sda/nfs/192.168.1.200/_mnt_disk1_TV/rar/
rar2_getattr2()   /Shrek.3D.avi
MISS    /Shrek.3D.avi   (collision: no)
rar2_getattr2()   /Shrek.3D.avi
MISS    /Shrek.3D.avi   (collision: no)
rar2_getattr2()   /Shrek.3D.avi
MISS    /Shrek.3D.avi   (collision: no)
rar2_getattr2()   /Shrek.3D.avi
MISS    /Shrek.3D.avi   (collision: no)
rar2_getattr2()   /Shrek.3D.avi
MISS    /Shrek.3D.avi   (collision: no)
rar2_getattr2()   /Shrek.3D.avi
MISS    /Shrek.3D.avi   (collision: no)
rar2_getattr2()   /Shrek.3D.avi
MISS    /Shrek.3D.avi   (collision: no)
rar2_getattr2()   /Shrek.3D.avi
MISS    /Shrek.3D.avi   (collision: no)
rar2_getattr2()   /Shrek.3D.avi
MISS    /Shrek.3D.avi   (collision: no)
rar2_getattr2()   /Shrek.3D.avi
MISS    /Shrek.3D.avi   (collision: no)
rar2_getattr2()   /Shrek.3D.avi
MISS    /Shrek.3D.avi   (collision: no)
rar2_getattr2()   /Shrek.3D.avi
MISS    /Shrek.3D.avi   (collision: no)
rar2_getattr2()   /Shrek.3D.avi
MISS    /Shrek.3D.avi   (collision: no)
rar2_getattr2()   /Shrek.3D.avi
MISS    /Shrek.3D.avi   (collision: no)
rar2_getattr2()   /
MISS    /   (collision: no)
STAT retrieved for /dtv/usb/sda/nfs/192.168.1.200/_mnt_disk1_TV/rar/
rar2_getattr2()   /Shrek.3D.avi
MISS    /Shrek.3D.avi   (collision: no)
rar2_getattr2()   /Shrek.3D.avi
MISS    /Shrek.3D.avi   (collision: no)
rar2_getattr2()   /Shrek.3D.avi
MISS    /Shrek.3D.avi   (collision: no)
rar2_getattr2()   /Shrek.3D.avi
MISS    /Shrek.3D.avi   (collision: no)
rar2_getattr2()   /
MISS    /   (collision: no)
STAT retrieved for /dtv/usb/sda/nfs/192.168.1.200/_mnt_disk1_TV/rar/
rar2_getattr2()   /Shrek.3D.avi
MISS    /Shrek.3D.avi   (collision: no)
rar2_getattr2()   /Shrek.3D.avi
MISS    /Shrek.3D.avi   (collision: no)
rar2_getattr2()   /Shrek.3D.avi
MISS    /Shrek.3D.avi   (collision: no)
rar2_getattr2()   /
MISS    /   (collision: no)
STAT retrieved for /dtv/usb/sda/nfs/192.168.1.200/_mnt_disk1_TV/rar/
rar2_readdir2()   /
listrar()   /   arch=/dtv/usb/sda/nfs/192.168.1.200/_mnt_disk1_TV/rar/Shrek.3D.rar
Looking up /Shrek.3D.avi in cache
Adding /Shrek.3D.avi to cache
rar2_getattr2()   /
MISS    /   (collision: no)
STAT retrieved for /dtv/usb/sda/nfs/192.168.1.200/_mnt_disk1_TV/rar/

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

Posted: Mon Feb 20, 2012 9:27 pm
by hasse69
I am not surprised it works for uncompressed RARs. In that mode rar2fs handles the extraction internally without using libunrar.
Also, the problem is related to thread termination rather than compression. When archives are compressed there is an extra thread being created to handle the I/O buffer.
For some reason when one of the thread terminates (which it should) a fault is raised.
When looking at the backtrace from one of your runs, libstdc++ is the one that caught the error. It is hard for me to debug this since I can not reproduce it myself on any of the reference platforms.
I will try harder. But, just to clean my mind from something, can you try with rar2fs 1.13.0? You should still be able to use the same libunrar.

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

Posted: Mon Feb 20, 2012 9:31 pm
by juusso
OK, tommorow I will. Thanks :-)

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

Posted: Mon Feb 20, 2012 11:24 pm
by hasse69
Try this patch on 1.14.0
Maybe we should move this discussion to PM or the rar2fs issue report system instead of more bloating of this thread :roll:

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

Posted: Tue Feb 21, 2012 9:29 am
by juusso
patch3. Mounted with some delay. Result - fail.

Code: Select all

# strace -o /dtv/usb/sda/strace.log 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()   /
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()   /Shrek.3D.avi
rar2_getattr2()   /Shrek.3D.trp
MISS    /Shrek.3D.trp   (collision: no)
rar2_open()   /Shrek.3D.avi
(00581) OPEN    /Shrek.3D.avi [0x0][called from 00271]
(00581) ALLOC   /Shrek.3D.avi [0xa86d0         ]
PIPE 0xa8740 created towards child 622
Reader thread started, fp=0xa8740
preload_index()   /Shrek.3D.avi
Preloading index for /dtv/usb/sda/TV/rar/Shrek.3D.r2i
Reader thread wakeup, select()=1
rar2_read()   /Shrek.3D.avi   size=16384, offset=0, fh=689872
PID 00581 calling lread_rar(), seq = 1, size=16384, offset=0/0
Reader thread wakeup, select()=1
Reader thread acknowledge
1083434128 thread wakeup (1, 1)
lread_rar: RETURN 16384
Reader thread wakeup, select()=1
rar2_flush()   /Shrek.3D.avi
(00581) FLUSH   /Shrek.3D.avi [0xa86d0         ][called from 00271]
lflush()   /Shrek.3D.avi
rar2_release()   /Shrek.3D.avi
(00581) RELEASE /Shrek.3D.avi [0xa86d0         ]
Reader thread wakeup, select()=1
Reader thread stopped
PIPE 0xa8740 closed towards child 00622
(00581) FREE    /Shrek.3D.avi [0xa86d0         ]
rar2_getattr2()   /Shrek.3D.smi
MISS    /Shrek.3D.smi   (collision: no)
rar2_getattr2()   /Shrek.3D.SMI
MISS    /Shrek.3D.SMI   (collision: no)
rar2_getattr2()   /Shrek.3D.srt
MISS    /Shrek.3D.srt   (collision: no)
rar2_getattr2()   /Shrek.3D.SRT
MISS    /Shrek.3D.SRT   (collision: no)
rar2_getattr2()   /Shrek.3D.sub
MISS    /Shrek.3D.sub   (collision: no)
rar2_getattr2()   /Shrek.3D.SUB
MISS    /Shrek.3D.SUB   (collision: no)
rar2_getattr2()   /Shrek.3D.ttxt
MISS    /Shrek.3D.ttxt   (collision: no)
rar2_getattr2()   /Shrek.3D.TTXT
MISS    /Shrek.3D.TTXT   (collision: no)
rar2_getattr2()   /Shrek.3D.txt
MISS    /Shrek.3D.txt   (collision: no)
rar2_getattr2()   /Shrek.3D.TXT
MISS    /Shrek.3D.TXT   (collision: no)
rar2_getattr2()   /Shrek.3D.avi
rar2_open()   /Shrek.3D.avi
(00581) OPEN    /Shrek.3D.avi [0x0][called from 00271]
(00581) ALLOC   /Shrek.3D.avi [0xa86d0         ]
PIPE 0xa8740 created towards child 625
Reader thread started, fp=0xa8740
preload_index()   /Shrek.3D.avi
Preloading index for /dtv/usb/sda/TV/rar/Shrek.3D.r2i
rar2_flush()   /Shrek.3D.avi
(00581) FLUSH   /Shrek.3D.avi [0xa86d0         ][called from 00271]
lflush()   /Shrek.3D.avi
rar2_release()   /Shrek.3D.avi
(00581) RELEASE /Shrek.3D.avi [0xa86d0         ]
Reader thread wakeup, select()=1
Caught signal SIGSEGV
Got signal 11, faulty address is 0x0x402b4000, from 0x0x401bfc70
/lib/libc.so.6(__default_rt_sa_restorer+0) [0x401bfc70]
rar2fs [0x13c78]
/lib/libpthread.so.0 [0x4017c830]
#

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

Posted: Tue Feb 21, 2012 2:32 pm
by arris69
juuso wrote:patch3. Mounted with some delay. Result - fail.
...
what makes me wonder that you can link against libunrar.so, then some object files are not in the libunrar.so (like: recvol.o rs.o) but i think the functions are used somewhere....
no messages about undefined references???? during link of rar2fs :? :shock:

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

Posted: Tue Feb 21, 2012 2:35 pm
by juusso
haven`t noticed anything strange during compilation...
just this warning:

Code: Select all

sighandler.c: In function 'stack_trace':
sighandler.c:58: warning: unused variable 'uc'

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

Posted: Tue Feb 21, 2012 6:25 pm
by hasse69
juuso wrote:patch3. Mounted with some delay. Result - fail.
Well, hang-on. It fails yes, but not the same way as before. As you can see you now pass the first stage when the file is closed!
Now you get a SEGV instead, most probably because my patch I sent was really a hack to trace the error.
Can you now patch rar2fs.c and find the few places in the code were it calls pthread_join(NULL). They are behind comments now,
but I want you to put them back and try again.

EDIT: Also, there is no need for strace, it does not feed back enough information. I really wish you could run this through gdb but I guess that is asking too much ;)
Is there still nothing showing up in /var/log/messages ?

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

Posted: Tue Feb 21, 2012 6:34 pm
by hasse69
arris69 wrote: no messages about undefined references???? during link of rar2fs :? :shock:
What do you mean ? rar2fs is linking fine towards libunrar.so and there should be no undefined references.
The file you mentioned is not used by the library, that is only used when you build the 'unrar' command line tool.
The unrar tool itself does not use libunrar ;) That you can see by doing ldd on the binary.

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

Posted: Tue Feb 21, 2012 6:45 pm
by juusso
Yes, gdb is too much for me, sorry :)

I haven`t understood you well, what places are needed to patch? It could be better you gave some ready-patch files (yah, i know, it takes longer and so on...)

No /var/log/messages are available on TV. Here isn`t any. Thanks to samsung. :(