Git Product home page Git Product logo

rar2fs's People

Contributors

fastcat avatar fdegros avatar hasse69 avatar kylesanderson avatar m-gupta avatar vapier avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rar2fs's Issues

Documentation: fstab

Explaination how to add rar2fs to fstab:

create /sbin/mount.rar2fs:
#!/bin/bash
OPTIONS="`echo $* |  sed 's/,--/ --/g'`"
sudo rar2fs --seek-length=1 $OPTIONS

In fstab:
/mnt/files    /mnt/rar    rar2fs    ro,noatime,--seek-length=1      0       0

Original issue reported on code.google.com by irbanur on 2011-06-21

Out of memory

Running a Windows 2008r2 server with a virtualbox guest (Ubuntu 14 server) running rar2fs.
Plex media server is running on the windows 2008r2 server and using the rar2fs server to unpack my movies and series. 

Having issue with rar2fs getting following message after X amount of data transfered: 

rar2fs login: Out of memory: Kill process 1046 (rar2fs) score 858 or sacrifice child 
Killed process 1046(rar2fs) total-vm:2409464kB  anon-rss:1760124kB, file-rss:0kB

When this happens i must run umount -l and remount it again.

I'm running 2 mounts from rar2fs, one with movies (with --seek-length=1) that has no issue so far. 
The other one(with the issue) does not have --seek-length=1 since it can't find all the rar files with it.

Tried increasing the memory from 512mb to 2gb, all it did was postpone the error bit longer - still happens thou. 

Original issue reported on code.google.com by [email protected] on 2014-09-05

Null pointer crash on passworded Rar file

What steps will reproduce the problem?

  1. /home/dl/TFAN.rar is a passworded Rar file
  2. Run rar2fs -d / /m/cons/
  3. List the directory /m/cons/home/dl/

What is the expected output? What do you see instead?
At least the rest of the directory. I’m not actually interested in this particular Rar file.

Instead, it crashes at rar2fs.c line 2156 (v1.18.0), in the listrar() function, at the second call to strdup(Password). The Password parameter is a null pointer. I have not specified any passwords anywhere, but I don’t think it should crash because of this.

What version of the product are you using? On what operating system?
1.17.2 and 1.18.0, Arch Linux

Original issue reported on code.google.com by vadmium on 2013-10-10

'REG_EIP' undeclared

i defined and tried 2 diffrent versions of fusefs (fuse-2.8.0,fuse-2.8.5)
but im getting always this error:
make
g++ -g -rdynamic -fno-omit-frame-pointer -O2  -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DRARDLL  -MD -I./unrar -c dllext.cpp
gcc -g -rdynamic -fno-omit-frame-pointer -O2 -std=c99 -Wall  -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DHAS_GLIBC_CUSTOM_STREAMS_ -DRARDLL -DFUSE_USE_VERSION=27 -I/root/fuse-2.8.0/include -MD -I./unrar -I/root/fuse-2.8.0/include -c configdb.c
gcc -g -rdynamic -fno-omit-frame-pointer -O2 -std=c99 -Wall  -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DHAS_GLIBC_CUSTOM_STREAMS_ -DRARDLL -DFUSE_USE_VERSION=27 -I/root/fuse-2.8.0/include -MD -I./unrar -I/root/fuse-2.8.0/include -c filecache.c
gcc -g -rdynamic -fno-omit-frame-pointer -O2 -std=c99 -Wall  -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DHAS_GLIBC_CUSTOM_STREAMS_ -DRARDLL -DFUSE_USE_VERSION=27 -I/root/fuse-2.8.0/include -MD -I./unrar -I/root/fuse-2.8.0/include -c iobuffer.c
gcc -g -rdynamic -fno-omit-frame-pointer -O2 -std=c99 -Wall  -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DHAS_GLIBC_CUSTOM_STREAMS_ -DRARDLL -DFUSE_USE_VERSION=27 -I/root/fuse-2.8.0/include -MD -I./unrar -I/root/fuse-2.8.0/include -c sighandler.c
sighandler.c: In function 'stack_trace':
sighandler.c:59: error: 'REG_EIP' undeclared (first use in this function)
sighandler.c:59: error: (Each undeclared identifier is reported only once
sighandler.c:59: error: for each function it appears in.)
make: *** [sighandler.o] Error 1

Original issue reported on code.google.com by pingu5400 on 2011-05-29

Not a bug : Fix some compile warnings.

gcc reports some warnings...

gcc -std=gnu99 -o mkr2i mkr2i.o -rdynamic -L../unrar  -ldl -lrt 
rar2fs.c: In function ‘lrelease’:
rar2fs.c:1248:9: warning: format ‘%p’ expects argument of type ‘void *’, but argument 5 has type ‘uint64_t’ [-Wformat=]
         printd(3, "(%05d) %s [%-16p]\n", getpid(), "FREE", fi->fh);
         ^
mv -f .deps/filecache.Tpo .deps/filecache.Po
mv -f .deps/iobuffer.Tpo .deps/iobuffer.Po
rar2fs.c: In function ‘rar2_release’:
rar2fs.c:3745:9: warning: format ‘%p’ expects argument of type ‘void *’, but argument 5 has type ‘uint64_t’ [-Wformat=]
         printd(3, "(%05d) %s [%-16p]\n", getpid(), "RELEASE", fi->fh);
         ^
mv -f .deps/optdb.Tpo .deps/optdb.Po
rar2fs.c:3797:17: warning: format ‘%p’ expects argument of type ‘void *’, but argument 5 has type ‘uint64_t’ [-Wformat=]
                 printd(3, "(%05d) %s [%-16p]\n", getpid(), "FREE", fi->fh);
                 ^

That occurs because file handle(fh) is just integer, but uses "pointer" format to print that.

This patch can fix this. It just replaces "%p" to PRIX64 to ensure hex output - fh declares as uint64_t in fuse_common.h on my system.

Original issue reported on code.google.com by jyhpsycho on 2014-02-23

Error: dllext.o

Im trying to install rar2fs, and have done and install whats needed.
But when I do 'make' after './configure' I get this error:

Makefile:532: recipe for target 'dllext.o' failed
make: *** [dllext.o] Error 1

Been trying to google it, but cant find any solutions.
Any help would be greatly appriciated.

madc0w

rar2fs crash

I got a crash in rar2fs when scanning my media directory with plex, 

I have tried this version 1.16 and trunk with unrar 4.0.7 and 4.2.4 both dies on the same file:

#sudo -u plex rar2fs -o allow_other /mnt/data1 /mnt/data1_rar2fs


LOOKUP /movies/english/In.The.House.2012.720p.BluRay.x264-MELiTE/m-ith-720p.sfv
getattr /movies/english/In.The.House.2012.720p.BluRay.x264-MELiTE/m-ith-720p.sfv
   NODEID: 409
   unique: 876, success, outsize: 144
unique: 877, opcode: READDIR (28), nodeid: 402, insize: 80, pid: 6829
   unique: 877, success, outsize: 16
unique: 878, opcode: RELEASEDIR (29), nodeid: 402, insize: 64, pid: 0
   unique: 878, success, outsize: 16
unique: 879, opcode: LOOKUP (1), nodeid: 3, insize: 103, pid: 6829
LOOKUP /movies/english/Iron.Man.Rise.Of.Technovore.2013.720p.BluRay.x264-UNTOUCHABLES
getattr /movies/english/Iron.Man.Rise.Of.Technovore.2013.720p.BluRay.x264-UNTOUCHABLES
   NODEID: 410
   unique: 879, success, outsize: 144
unique: 880, opcode: OPENDIR (27), nodeid: 410, insize: 48, pid: 6829
   unique: 880, success, outsize: 32
unique: 881, opcode: READDIR (28), nodeid: 410, insize: 80, pid: 6829
readdir[0] from 0
Got signal 11, faulty address is 0x0x8, from 0x0x407bd9
rar2fs() [0x407bd9]
/lib/x86_64-linux-gnu/libpthread.so.0(+0xfcb0) [0x7effd611bcb0]
/lib/x86_64-linux-gnu/libc.so.6(+0x89101) [0x7effd5dd6101]
/lib/x86_64-linux-gnu/libc.so.6(__strdup+0x16) [0x7effd5dd5d66]
rar2fs() [0x40dad9]
rar2fs() [0x40ea6b]
rar2fs() [0x40edc8]
/lib/x86_64-linux-gnu/libfuse.so.2(fuse_fs_readdir+0x96) [0x7effd6a95986]
/lib/x86_64-linux-gnu/libfuse.so.2(+0xcbd8) [0x7effd6a95bd8]
/lib/x86_64-linux-gnu/libfuse.so.2(+0x14666) [0x7effd6a9d666]
/lib/x86_64-linux-gnu/libfuse.so.2(+0x15947) [0x7effd6a9e947]
/lib/x86_64-linux-gnu/libfuse.so.2(fuse_session_loop+0x9f) [0x7effd6a9b1af]
/lib/x86_64-linux-gnu/libfuse.so.2(fuse_loop+0x1b8) [0x7effd6a931d8]
rar2fs() [0x4088c3]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x7e9a) [0x7effd6113e9a]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7effd5e40cbd]

Original issue reported on code.google.com by [email protected] on 2013-04-15 18:03:28

rar2fs does not work properly when used remotely for compressed archives mounted over NFSv2/v3

What steps will reproduce the problem?

  1. mount a rar2fs folder on server side
  2. export the folder using NFSv2/v3
  3. mount the exported folder on client side

Compressed archives will not playback properly. A similar setup exported/mounted using CIFS works as expected. Non-compressed archives (store) also works fine when NFSv2/v3 is used. Using rar2fs purely on the client side also works reliable.
The problem is related to how NFS is interacting with the file system. When used remotely rar2fs needs to handle the stateless access patterns from NFS. When rar2fs is used locally this interaction is avoided.

Original issue reported on code.google.com by hasse69 on 2011-02-04

Wrong use of $(DESTDIR) causing build failures in package managers

Makefile.am is trying to remove /sbin/mount.rar2fs without $(DESTDIR) and thus, package managers will of course forbid this and throw an error
Only $(DESTDIR) can be worked on, and then the files get merged to the actual file system
Also, the symlink creation in Makefile.am is wrong way around
The attached patch fixes things for me (and Gentoo and any distribution using sandbox in their packaging, so pretty much any)

Original issue reported on code.google.com by ssuominen.private on 2013-03-13

No playback in Plex/slow speed

Hello!

I am first time user and I am having some trouble with playback in Plex using rar2fs - the playback doesn't start at all.
I also tried downloading a media file from within Plex and got a speed of ~90kb/s (internal network), which seems very low to me.

Any troubleshooting I can do? Is there anything I have missed?

rar2fs -V
rar2fs v1.21.0 (DLL version 7)    Copyright (C) 2009-2014 Hans Beckerus
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under
certain conditions; see <http://www.gnu.org/licenses/> for details.
FUSE library version: 2.9.4
fusermount version: 2.9.4
using FUSE kernel interface version 7.19

Compiled using unrarsrc-5.3.8.tar.gz.

Kernel: Linux server 4.2.0-18-generic
Dist: Ubuntu 15.10
CPU: Intel Core i7-4790K Quad-Core @ 4.0 GHz
Memory: 2 x 8GB DDR3 @ 1333 MHz

Netatalk failing with rar2fs mounted filesystems

It seems afpd crashes when trying to access a rar2fs mount. This could be because apfd normaly tries
to created some osx related directories and files. Since the rar2fs is readonly this fails. 
The thing is my os doesn't show it as read only.

I attached the rar2fs logfile running it with DEBUG=4 compile option.

Cheers,
Joris

Original issue reported on code.google.com by wiebel on 2011-05-29

Stops reading after first rarfile

Hi,

I'm having a annoying problem, in which rar2fs stops reading den file after it has read the first rarfile part. So this means that only the first part is read. This could be 15MB. I did not have the problem prior updating to 1.22, yet I think the error is due to something in unrar. Anyways, here's the debug log if that can be helpful.

log: http://pastebin.com/SbVG480c

rar2fs -V
rar2fs v1.22.0 (DLL version 7) Copyright (C) 2009 Hans Beckerus
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under
certain conditions; see http://www.gnu.org/licenses/ for details.
FUSE library version: 2.9.2
fusermount version: 2.9.2
using FUSE kernel interface version 7.19

unrar:

define RARVER_MAJOR 5

define RARVER_MINOR 31

define RARVER_BETA 0

define RARVER_DAY 4

define RARVER_MONTH 2

define RARVER_YEAR 2016

Can't export rar2fs filesystem via kernel-nfsd on freebsd

When trying to export a rar2fs filesystem via freebsd's kernel-nfsd I get:

Jun  2 00:27:58 collected mountd[14470]: getvfsbyname() failed for fusefs.rar2fs
Jun  2 00:27:58 collected mountd[14470]: can't export /mnt/RMedia 
Jun  2 00:27:58 collected mountd[14470]: bad exports list line /mnt/RMedia      -network 192.168.1 -mask 255.255.255.0

(that export line is correct, works for the original fs).

I think the first line is key here ;)

Original issue reported on code.google.com by wiebel on 2011-06-01

Expose directory structure when mounting directory contains lot of archive sets.

I have some RAR archives that contains same path name in. When I mount this directory,
it exposes contents in one of their archives, not all archives... If it shows using one more
directory sturcture based on archive name, there's not any conflicts on it.

Here is an example. I know my english is poor, and I'm afraid that you may not understand
what I say above...

* Working Directory : /dev/shm/RARS

in /dev/shm/RARS/1.rar : DATA/1.txt, DATA/2.txt, DATA/4.txt
in /dev/shm/RARS/2.rar : DATA/1.txt, DATA/2.txt, DATA/3.txt

* Mount directory.
# rar2fs-read-only/rar2fs -o ro,allow_other /dev/shm/RARS 1/

* Current behavior:

# ls -l 1/DATA
total 12
-rw-r--r-- 1 root root 5 Feb  1 14:25 1.txt
-rw-r--r-- 1 root root 5 Feb  1 14:25 2.txt
-rw-r--r-- 1 root root 5 Feb  1 14:25 4.txt

 - There's no contents in 2.rar.

* What it should be I think:

# ls -l 1
drwxr-xr-x 2 root root 4096 Feb  1 14:25 1
drwxr-xr-x 2 root root 4096 Feb  1 14:25 2

 - Directory name is based on archive name.

# ls -l 1/1
drwxr-xr-x 2 root root 4096 Feb  1 14:25 DATA
# ls -l 1/1/DATA
-rw-r--r-- 1 root root 5 Feb  1 14:25 1.txt
-rw-r--r-- 1 root root 5 Feb  1 14:25 2.txt
-rw-r--r-- 1 root root 5 Feb  1 14:25 4.txt
# ls -l 1/2/DATA
-rw-r--r-- 1 root root 5 Feb  1 14:25 1.txt
-rw-r--r-- 1 root root 5 Feb  1 14:25 2.txt
-rw-r--r-- 1 root root 5 Feb  1 14:25 4.txt

Original issue reported on code.google.com by jyhpsycho on 2014-02-01

Follow symlinks and mount their contents

Setup a directory with the following structure. Dir called TV and inside TV have subdirectories and inside those subdirectories have symlinks to directories that contain directories of rar files.

The symlinks appear when mounted but they are not actually mounted, they appear like symlinks to directories with rarfiles that aren't mounted.


rar2fs v1.17.2
FUSE library version: 2.9.2
fusermount version: 2.9.2
using FUSE kernel interface version 7.19

Linux GXT3 3.9-1-amd64 #&nbsp;1 SMP Debian 3.9.8-1 x86_64 GNU/Linux

Original issue reported on code.google.com by delf.eldkraft on 2013-07-24

Archives randomly expanded with owner as root

rar2fs on /mnt/BackupU type fuse.rar2fs (ro,nosuid,nodev,allow_other,default_permissions)


Any tips would be appreciated. Archive attributes on file are -rw-r-----
Details: RAR 4, volume

Attributes on a working dir (mounted as the parent user) are -rw-rw-rw-.

Original issue reported on code.google.com by kyle.leet on 2015-02-09

ls failed on device-stored archive.

What steps will reproduce the problem?

Just execute ls. Testing condition below.

What is the expected output? What do you see instead?

That should be print archive content. But it says :

ls: reading directory TEST/: Software caused connection abort

What version of the product are you using? On what operating system?

openSUSE 13.1 x86-64, unrar 5.0.14

# rar2fs -V
rar2fs v1.19.8 (DLL version 6)    Copyright (C) 2009-2014 Hans Beckerus
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under
certain conditions; see &lt;http://www.gnu.org/licenses/&gt; for details.
FUSE library version: 2.9.3
fusermount version: 2.9.3
using FUSE kernel interface version 7.19

Please provide any additional information below.

I created some hard disk partition to store archive file itself. Its size is about 130GiB, contains 6 files which sizes are 20 ~ 23 GiB and some RR. Linux treats partition device almost same as regular file, thus this should be work.

Instruction step :

  1. mount partition.
# rar2fs -o ro,allow_other /dev/sdb2 TEST/
  1. run "ls -l TEST/".

Debug messages:

    mounting file system on /dev/shm/WORK/TEST
    unique: 1, opcode: INIT (26), nodeid: 0, insize: 56, pid: 0
    INIT: 7.22
    flags=0x0000f7fb
    max_readahead=0x00020000
    rar2_init()   
       INIT: 7.19
       flags=0x00000010
       max_readahead=0x00020000
       max_write=0x00020000
       max_background=0
       congestion_threshold=0
       unique: 1, success, outsize: 40
    unique: 2, opcode: GETATTR (3), nodeid: 1, insize: 56, pid: 17161
    getattr /
    rar2_getattr2()   /
    MISS    /
    STAT retrieved for /dev/
       unique: 2, success, outsize: 120
    unique: 3, opcode: GETXATTR (22), nodeid: 1, insize: 65, pid: 17161
    getxattr / security.selinux 255
    rar2_getxattr()   /
       unique: 3, error: -61 (No data available), outsize: 16
    unique: 4, opcode: GETXATTR (22), nodeid: 1, insize: 72, pid: 17161
    getxattr / system.posix_acl_access 0
    rar2_getxattr()   /
       unique: 4, error: -61 (No data available), outsize: 16
    unique: 5, opcode: GETXATTR (22), nodeid: 1, insize: 73, pid: 17161
    getxattr / system.posix_acl_default 0
    rar2_getxattr()   /
       unique: 5, error: -61 (No data available), outsize: 16
    unique: 6, opcode: OPENDIR (27), nodeid: 1, insize: 48, pid: 17161
    opendir flags: 0x18800 /
    rar2_opendir()   /
       opendir[140122905549680] flags: 0x18800 /
       unique: 6, success, outsize: 32
    unique: 7, opcode: READDIR (28), nodeid: 1, insize: 80, pid: 17161
    readdir[140122905549680] from 0
    rar2_readdir2()   
    listrar()   /   arch=/dev/sdb2
    Looking up /Vol.1.rar in cache
    Adding /Vol.1.rar to cache
    23501538393 byte RAR file /Vol.1.rar found in archive /dev/sdb2
    Looking up /Vol.2.rar in cache
    Adding /Vol.2.rar to cache
    22110405466 byte RAR file /Vol.2.rar found in archive /dev/sdb2
    Got signal 11, faulty address is 0x0x7f766826b750, from 0x0x4188c0
    ../rar2fs-1.19.8/rar2fs() [0x4188c0]
    /lib64/libpthread.so.0(+0xf9f0) [0x7f70ee84d9f0]
    /lib64/libc.so.6(strnlen+0x44) [0x7f70ee5120c4]
    /lib64/libc.so.6(fmemopen+0x6c) [0x7f70ee50335c]
    ../rar2fs-1.19.8/rar2fs() [0x41d086]
    ../rar2fs-1.19.8/rar2fs() [0x41ea48]
    ../rar2fs-1.19.8/rar2fs() [0x420c59]
    ../rar2fs-1.19.8/rar2fs(fuse_fs_readdir+0x82) [0x42bc42]
    ../rar2fs-1.19.8/rar2fs() [0x42bdcc]
    ../rar2fs-1.19.8/rar2fs() [0x4326f6]
    ../rar2fs-1.19.8/rar2fs() [0x4338a6]
    ../rar2fs-1.19.8/rar2fs(fuse_session_loop+0xac) [0x4302dc]
    ../rar2fs-1.19.8/rar2fs(fuse_loop+0x1e8) [0x428928]
    ../rar2fs-1.19.8/rar2fs() [0x424f21]
    /lib64/libpthread.so.0(+0x80db) [0x7f70ee8460db]
    /lib64/libc.so.6(clone+0x6d) [0x7f70ee57690d]
    [*] Process terminated at this point.

I think it causes some memory crash...

There's no problem when mounting file in filesystem - I mean mount with "rar2fs -o ro,allow_other Vols.rar TEST/".

Original issue reported on code.google.com by jyhpsycho on 2014-02-21 11:39:03

Throws I/O error when accessing compressed file under very long pathname.

* CAUTION : unrar can extract the sample file correctly, but extracted file is cannot be accessed or deleted on "Real Windows" environment due to that's long pathnames. For deleting that files, using 7-zip file manager. On linux, there's no problem.

Finally I can reproduce this issue, then report it.

I guessed some special characters(CJK characters or non-alphanumerical symbols) causes this issue before, but it's not true. It occurs with compressed file which has very long pathname(over 256(?) bytes total). It just easily find out when using CJK characters which consumes 3 byte(in UTF-8, most of character encodings on linux terminal, file name of filesystem, etc.) per each character.

  • How to reproduce
mkdir W
mkdir -p 'base_dir_for_very_long_file_paths/it_has_very_long_directory_name_for_testing_rar2fs_functionality/this_is_third_level_of_directory_hierarchy_only_using_alphanumeric_latin_characters/this_is_fourth_level_of_directory_hierarchy_only_using_alphanumeric_latin_characters'
dd if=/dev/zero of='base_dir_for_very_long_file_paths/it_has_very_long_directory_name_for_testing_rar2fs_functionality/this_is_third_level_of_directory_hierarchy_only_using_alphanumeric_latin_characters/this_is_fourth_level_of_directory_hierarchy_only_using_alphanumeric_latin_characters/this_is_file_for_testing' bs=1M count=16
rar a -m5 -ma5 TEST.rar base_dir_for_very_long_file_paths
rar2fs -o ro,allow_other --flat-only --show-comp-img TEST.rar W
diff -ur W/base_dir_for_very_long_file_paths base_dir_for_very_long_file_paths
  • Additional information
    • I'll attach the sample, but read the CAUTION above before deal with it!
    • It doesn't occur with stored file. Only compressed file causes I/O error.
    • It occurs with both of legacy and newer RAR format.
    • Using libunrar 5.3.8.
# ./rar2fs-master/rar2fs --version
rar2fs v1.21.1 (DLL version 7)    Copyright (C) 2009-2014 Hans Beckerus
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under
certain conditions; see <http://www.gnu.org/licenses/> for details.
FUSE library version: 2.9.4
fusermount version: 2.9.4
using FUSE kernel interface version 7.19

TEST.zip

Binary data compare failed on multi-volume archive with stored mode and QO information.

Instructions for preparing provided sample:

mkdir TEST_DIR O
mkdir TEST_DIR/DIR{1..3}
mkdir TEST_DIR/DIR1/{A,B}
mkdir TEST_DIR/DIR2/C
dd if=/dev/urandom of=TEST_DIR/DIR1/A/FILE1 bs=4k count=16
dd if=/dev/urandom of=TEST_DIR/DIR1/A/FILE2 bs=4k count=16
dd if=/dev/urandom of=TEST_DIR/DIR1/B/FILE3 bs=4k count=16
dd if=/dev/urandom of=TEST_DIR/DIR2/C/FILE4 bs=4k count=16
dd if=/dev/urandom of=TEST_DIR/DIR2/FILE5 bs=4k count=16
rar a -m0 -ma5 -v16000b -rr5 -qo+ TEST.rar TEST_DIR
./rar2fs-master/rar2fs -o ro,allow_other --flat-only --show-comp-img TEST.part01.rar O
diff -ur TEST_DIR O/TEST_DIR

Note that it uses -qo+ option. It stores 'Quick open information' for all files in RAR archive. With -qo- option, it doesn't occur.
Above instruction uses -rr5 option, but recovery record is not related on this issue. Same result without it.

NOTE : Directory hierarchy building provided sample is created on tmpfs; It returns the file list as reverse order of being created. It's not important thing for this issue, but one may confuse that it does not store files as typical order.

TEST.zip

rar2fs does not build against unrarsrc-5.0.0

rar2fs does not currently build against the unrarsrc-5.0.0 package.
Due to this being a major release update there are lot of changes made to the source code that is incompatible with the libunrar extensions.

Original issue reported on code.google.com by hasse69 on 2013-04-29

File system notification support / improved copy speed

My main purpose for trying out rar2fs is to be enjoy media without the need of unpacking it. I would mount a whole directory full of archives and media into rar2fs and see it as a DLNA server's root folder.

This works perfectly, however any new media put into the folder is not picked up by the DLNA sever. The folder is watched with inotify. I need to rebuild the media database manually every time there is a change.

I have looked into the issue as to the reason and fuse does not and will not support forwarding notifications on the src to the mounted target directory. This is understandable as the mount does not need to be on a local filesystem.

So we are left with setting a watch on the mount and directly moving files there instead of the src. This also works... however moving files there is painstakingly slow as we do a copy instead of a mv I presume. Is there any way of speeding things up if a file move is from the same localdisk to the same localdisk? Or is this out of our hands and a fuse thing?

Thanks

Original issue reported on code.google.com by fafarago on 2014-03-07

read wrong data from large(?) compressed stream

What steps will reproduce the problem?

  1. Compress large data stream that not have good compression ratio.
    I used Blu-ray Image.
  2. Mount archive to any path.
  3. Compare files - original one and file in mounted path.
    I used diff for perform it.

What is the expected output? What do you see instead?

It must be identical, but sometimes it doesn't.
Difference location is vary - checked via cmp.

What version of the product are you using? On what operating system?

openSUSE 13.1 x86-64. unrar 5.0.14

# ./rar2fs -V
rar2fs v1.19.3-svnr438 (DLL version 6)    Copyright (C) 2009-2013 Hans Beckerus
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under
certain conditions; see &lt;http://www.gnu.org/licenses/&gt; for details.
FUSE library version: 2.9.3
using FUSE kernel interface version 7.19

Please provide any additional information below.

I think that doesn't occur with archive that created by sotred mode(-m0). Not sure because I perform this test only 2 times with stored data...

Original issue reported on code.google.com by jyhpsycho on 2014-01-30

Can't read data correctly with 'Save identical file as references' features.

What steps will reproduce the problem?

  1. Create archive with 'reference'.
  2. Mount that archive.
  3. Compare file by binary basis.

Step-by-step instructions below.

What is the expected output? What do you see instead?

# dd if=1/test/winrar-x64-501.exe bs=512 count=1 status=none | hexdump
0000000 b394 4d40 0220 0b03 0500 1000 0000 0000
0000010 0080 0600 6574 7473 312f 030a c002 fb0c
0000020 5106 cf1b b301 782a 1ecb 0302 000b 0005
0000030 0010 0000 8000 0000 7404 7365 0a74 0203
0000040 a8ae 05bf 1b51 01cf a891 29a9 030e ca06
0000050 0000 00ca 8000 0000 5102 7d4f ce90 45aa
0000060 ce00 7183 4e40 33f3 3b49 0302 ee0b f181
0000070 0080 d804 f8d8 0080 6a20 71a2 80c6 0025
0000080 7419 7365 2f74 2f31 6977 726e 7261 782d
0000090 3436 352d 3130 652e 6578 030a 8002 6e42
00000a0 6ca8 ceee 1d01 5677 0351 0405 0000     
00000ad

dd if=1/test/1/winrar-x64-501.exe bs=512 count=1 status=none | hexdump
0000000 5a4d 0090 0003 0000 0004 0000 ffff 0000
0000010 00b8 0000 0000 0000 0040 0000 0000 0000
0000020 0000 0000 0000 0000 0000 0000 0000 0000
0000030 0000 0000 0000 0000 0000 0000 00e8 0000
0000040 1f0e 0eba b400 cd09 b821 4c01 21cd 6854
0000050 7369 7020 6f72 7267 6d61 6320 6e61 6f6e
0000060 2074 6562 7220 6e75 6920 206e 4f44 2053
0000070 6f6d 6564 0d2e 0a0d 0024 0000 0000 0000
0000080 54aa 22ef 35ee 7181 35ee 7181 35ee 7181
0000090 4de7 7114 35e3 7181 4de7 7102 3594 7181
00000a0 4de7 7106 35ef 7181 4de7 7112 35fb 7181
00000b0 35ee 7180 351c 7181 4de7 7105 358b 7181
00000c0 4de7 7113 35ef 7181 4de7 7115 35ef 7181
00000d0 4de7 7110 35ef 7181 6952 6863 35ee 7181
00000e0 0000 0000 0000 0000 4550 0000 8664 0005
00000f0 ee85 529a 0000 0000 0000 0000 00f0 0023
0000100 020b 0009 ac00 0002 2a00 0003 0000 0000
0000110 1b6c 0002 1000 0000 0000 4000 0001 0000
0000120 1000 0000 0200 0000 0005 0002 0000 0000
0000130 0005 0002 0000 0000 1000 0006 0400 0000
0000140 1a2b 001f 0002 8100 0000 0010 0000 0000
0000150 1000 0000 0000 0000 0000 0010 0000 0000
0000160 1000 0000 0000 0000 0000 0000 0010 0000
0000170 3aa0 0003 0033 0000 236c 0003 00c8 0000
0000180 a000 0005 6640 0000 7000 0005 2100 0000
0000190 1400 001e 1858 0000 0000 0000 0000 0000
00001a0 c7c0 0002 001c 0000 0000 0000 0000 0000
00001b0 0000 0000 0000 0000 0000 0000 0000 0000
*
00001d0 c000 0002 06f0 0000 0000 0000 0000 0000
00001e0 0000 0000 0000 0000 0000 0000 0000 0000
00001f0 742e 7865 0074 0000 ab12 0002 1000 0000
0000200

Two files must be identical.

What version of the product are you using? On what operating system?

OS : openSUSE 13.1 x86-64

    # rar2fs/rar2fs-1.19.1/rar2fs -V
    rar2fs v1.19.1 (DLL version 6)    Copyright (C) 2009-2013 Hans Beckerus
    This program comes with ABSOLUTELY NO WARRANTY.
    This is free software, and you are welcome to redistribute it under
    certain conditions; see &lt;http://www.gnu.org/licenses/&gt; for details.
    FUSE library version: 2.9.3
    fusermount version: 2.9.3
    using FUSE kernel interface version 7.19

Please provide any additional information below.

I used x86-64 Windows version of WinRAR to create archive.
It works with WINE correctly. I guess WinRAR binary's target OS
isn't affect to this behavior.

Instructions:

1. Make following directory hierarchy.

test/winrar-x64-501.exe
test/1/winrar-x64-501.exe

2. Make RAR archive with following options.

# wine 'C:\Program Files\WinRAR\Rar.exe' a -ma5 -m5 -oi:0 TEST.rar test

NOTE : With -oi option, WinRAR scans identical file and stores it as 'reference' that points only one copy of actual compressed data. &quot;:0&quot; means &quot;scan any size of file&quot;.

3. Verify the archive creates correctly as expected.

# unrar vta TEST.rar

UNRAR 5.00 freeware      Copyright (c) 1993-2013 Alexander Roshal

Archive: TEST.rar
Details: RAR 5

        Name: test/1/winrar-x64-501.exe
        Type: File
        Size: 1977432
 Packed size: 1851630
       Ratio: 93%
       mtime: 2013-12-01 17:09,000
  Attributes: ..A....
       CRC32: C671A26A
     Host OS: Windows
 Compression: RAR 5.0(v0) -m5 -md=2M

        Name: test/winrar-x64-501.exe
        Type: File copy
      Target: test\1\winrar-x64-501.exe
        Size: 1977432
 Packed size: 0
       Ratio: 0%
       mtime: 2013-12-01 17:09,000
  Attributes: ..A....
       CRC32: 00000000
     Host OS: Windows
 Compression: RAR 5.0(v0) -m0 -md=2M

        Name: test/1
        Type: Directory
       mtime: 2014-01-27 20:15,000
  Attributes: ...D...
       CRC32: 00000000
     Host OS: Windows
 Compression: RAR 5.0(v0) -m0 -md=0K

        Name: test
        Type: Directory
       mtime: 2014-01-27 20:15,000
  Attributes: ...D...
       CRC32: 00000000
     Host OS: Windows
 Compression: RAR 5.0(v0) -m0 -md=0K

        Name: QO
        Type: Service
        Size: 74
 Packed size: 74
       Ratio: 100%
  Attributes: .B
     Host OS: Windows
 Compression: RAR 5.0(v0) -m0 -md=128K

     Service: EOF

Yes, test/test/winrar-x64-501.exe is marked as 'File Copy'. Target is 'test/winrar-x64-501.exe'.

4. mount this archive to any path.
5. Compare file using cmp. results are above.

I'll attach example file explained above.

Original issue reported on code.google.com by jyhpsycho on 2014-01-27

File compare failed on multi-volume archive which is not compressed.

I usually checks integrity of data on created rar archive via rar2fs; Because I'm using Windows version of WinRAR under Linux, and there's many suspicious things that decreases its reliability, i.e. WINE bug, silent data corruption on disk, etc. Sometimes I find out data differences in practice when I processing several terabytes of data. The nice features of RAR format(Checksum, Recovery Record) helps me to detect these errors, and even recover it.

When I compare contents on certain archive using diff, it throws error message that these files are differ. With some experiments, I found some conditions that occuring this issue:

  • RARv5 format (older format is not tested).
  • Volume-splitted.
  • File path contains some special characters.
  • Has recovery record.

I created the sample archive reproduces it by following instructions:

mkdir W
mkdir 'CJK文字집합ディレクトリー/[$637!@1 ^#special character set#^]'
dd if=/dev/urandom of='CJK文字집합ディレクトリー/[$637!@1 ^#special character set#^]/random' bs=1k count=64
rar a -m0 -ma5 -rr10 -v30720b TEST.rar 'CJK文字집합ディレクトリー'
rar2fs -o ro,allow_other --flat-only --show-comp-img TEST.part1.rar W
diff 'CJK文字집합ディレクトリー' 'W/CJK文字집합ディレクトリー'

Note that the file path contains non-alphabetical characters(some symbols, CJK). I'll attach the sample, too.

Additional informations :

  1. Software versions
  • Using libunrar 5.3.8.
# ./rar2fs-master/rar2fs --version

rar2fs v1.21.1 (DLL version 7)    Copyright (C) 2009-2014 Hans Beckerus
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under
certain conditions; see <http://www.gnu.org/licenses/> for details.
FUSE library version: 2.9.4
fusermount version: 2.9.4
using FUSE kernel interface version 7.19
  1. Output of 'unrar vta'
UNRAR 5.30 freeware      Copyright (c) 1993-2015 Alexander Roshal

Archive: TEST.part1.rar
Details: RAR 5, volume 1, recovery record

        Name: CJK文字집합ディレクトリー/[$637!@1 ^#special character set#^]/random
        Type: File
        Size: 65536
 Packed size: 28369
       Ratio: -->
       mtime: 2015-12-17 02:22:26,177
  Attributes: ..A....
  Pack-CRC32: DF1FB266
     Host OS: Windows
 Compression: RAR 5.0(v50) -m0 -md=128K

        Name: QO
        Type: Service
        Size: 124
 Packed size: 124
       Ratio: 100%
  Attributes: .B
     Host OS: Windows
 Compression: RAR 5.0(v50) -m0 -md=128K

        Name: RR
        Type: Service
        Size: 1312
 Packed size: 1312
       Ratio: 100%
  Attributes: .B
     Host OS: Windows
 Compression: RAR 5.0(v50) -m0 -md=128K

     Service: EOF
  1. Output of 'cmp -l' (original data first, rar2fs' output second)
28370 312 147
28371 147 267
28372 267 137
28373 137 274
28374 274 246
28375 246 346
28376 346 376
28377 376 302
28378 302  25
28379  25 371
.
.
.
56734   5 361
56735 361 170
56736 170  12
56737  12  47
56738 312 130
56739  47 240
56740 130 323
56741 240 210
56742 323 165
56743 210  37
.
.
.

According to 2) and 3), It seems that rar2fs misses 1 byte of data per volume.

TEST.zip

Compilation failed on FreeBSD 10.

What steps will reproduce the problem?

  1. Run confuigure.
  2. Run make.

What is the expected output? What do you see instead?

  • It should be compiled successfully. but, it failed.

What version of the product are you using? On what operating system?

  • FreeBSD 10.0-STABLE x86-64, rar2fs r462, unrar 5.0.14
# uname -a
FreeBSD localhost 10.0-STABLE FreeBSD 10.0-STABLE #2: Tue Mar  4 13:33:45 KST 2014     root@localhost:/usr/obj/usr/src/sys/STABLE-CUSTOM  amd64

Please provide any additional information below.

 - I'll attach config.log.
 - On FreeBSD, SIGXXX macro requires &lt;signal.h&gt;.
   Following error messages are result after fix that(add #include &lt;signal.h&gt;
   in rar2fs.c). Without this, it throws additional several error messages
   such as &quot;SIGINT not defined&quot;.

Compiler(clang 3.3 which is default compiler on FreeBSD 10) Messages:
    cc -DHAVE_CONFIG_H -I.  -I../unrar -I/usr/local/include -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26  -DNDEBUG -Wall -g -O2 -fno-omit-frame-pointer -Wextra -Wno-unused-result -D_THREAD_SAFE -pthread -MT rar2fs.o -MD -MP -MF .deps/rar2fs.Tpo -c -o rar2fs.o rar2fs.c
    rar2fs.c:1733:54: error: no member named 'Method' in 'struct RARArchiveListEx'
                            S_ISDIR(mode) ? 2 : alist_p-&gt;Method - (FHD_STORING - 1);
                                                ~~~~~~~  ^
    rar2fs.c:4333:45: warning: unused parameter 'st' [-Wunused-parameter]
    static int64_t get_blkdev_size(struct stat *st)
                                                ^
    1 warning and 1 error generated.
    *** Error code 1

    Stop.
    make[1]: stopped in /mnt/shm/rar2fs-read-only
    *** Error code 1

    Stop.
    make: stopped in /mnt/shm/rar2fs-read-only

Original issue reported on code.google.com by jyhpsycho on 2014-03-06

Cannot listing files in multi-volume archive with encrypted headers

NOTE : For creating archive, I used WINE.

  • HOW TO REPRODUCE :
mkdir TEST M
dd if=/dev/urandom of=TEST/TEST1 bs=16k count=1
dd if=/dev/urandom of=TEST/TEST2 bs=16k count=1
dd if=/dev/urandom of=TEST/TEST3 bs=16k count=1
dd if=/dev/urandom of=TEST/TEST4 bs=16k count=1
rar -m5 -ma5 -hpTEST -v10240b TEST.rar TEST
rar2fs TEST.part1.rar M
ls -AR M
  • EXPECTED RESULT :
# ls -AR TEST
TEST:
TEST1  TEST2  TEST3  TEST4
  • CURRENT RESULT:
# ls -AR M
M:
TEST

M/TEST:
TEST4
  • Additional information:
# uname -a
Linux localhost 4.4.8-gentoo #1 SMP PREEMPT Sat May 7 02:56:39 KST 2016 x86_64 Intel(R) Core(TM) i7 CPU 980 @ 3.33GHz GenuineIntel GNU/Linux
# rar2fs --version
rar2fs v1.22.0 (DLL version 7)    Copyright (C) 2009 Hans Beckerus
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under
certain conditions; see <http://www.gnu.org/licenses/> for details.
FUSE library version: 2.9.6
fusermount version: 2.9.6
using FUSE kernel interface version 7.19
  • It seems that only 1st entry can be accessed.
  • I'll attach the sample RAR file with password file.
    TEST.zip

Compile Error on Gentoo 64 Bi

When i try to compile the latest tar or svn of rar2fs i get the following error with unrarsrc-5.0.12. with unrarsrc-4.2.4 it works.

mv -f .deps/dirlist.Tpo .deps/dirlist.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I.  -I/root/unrarsrc/unrar -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -DNDEBUG -Wall  -g -O2 -DSVNREV_=409 -fno-omit-frame-pointer -Wextra -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 optdb.o filecache.o iobuffer.o sighandler.o dirlist.o rar2fs.o -pthread -rdynamic     -lfuse -lunrar  -lstdc++
dllext.o: In function `RARListArchiveEx':
/root/rar2fs-read-only/dllext.cpp:273: undefined reference to `Archive::Read(void*, unsigned long)'
dllext.o: In function `RARNextVolumeName':
/root/rar2fs-read-only/dllext.cpp:362: undefined reference to `NextVolumeName(wchar_t*, unsigned int, bool)'
dllext.o: In function `ListFileHeader':
/root/rar2fs-read-only/dllext.cpp:604: undefined reference to `RarTime::GetText(wchar_t*, unsigned long, bool, bool)'
/root/rar2fs-read-only/dllext.cpp:667: undefined reference to `RarTime::GetText(wchar_t*, unsigned long, bool, bool)'
/root/rar2fs-read-only/dllext.cpp:662: undefined reference to `RarTime::GetText(wchar_t*, unsigned long, bool, bool)'
/root/rar2fs-read-only/dllext.cpp:714: undefined reference to `ParseVersionFileName(wchar_t*, bool)'
/root/rar2fs-read-only/dllext.cpp:678: undefined reference to `BinToHex(unsigned char const*, unsigned long, char*, wchar_t*, unsigned long)'
dllext.o: In function `DataSet':
/root/rar2fs-read-only/dllext.cpp:71: undefined reference to `CmdExtract::CmdExtract(CommandData*)'
dllext.o: In function `RARInitArchiveEx':
/root/rar2fs-read-only/dllext.cpp:108: undefined reference to `CommandData::AddArcName(wchar_t const*)'
/root/rar2fs-read-only/dllext.cpp:161: undefined reference to `Archive::GetComment(Array&lt;wchar_t&gt;*)'
dllext.o: In function `Array&lt;char&gt;::Add(unsigned long)':
/root/unrarsrc/unrar/array.hpp:97: undefined reference to `ErrorHandler::GeneralErrMsg(wchar_t const*, ...)'
collect2: ld returned 1 exit status
make[1]: *** [rar2fs] Error 1
make[1]: Leaving directory `/root/rar2fs-read-only'
make: *** [all] Error 2

Original issue reported on code.google.com by pingu5400 on 2013-11-04 00:50:37

Compilation failed with GCC 6 series.

On gentoo, rar2fs 1.22.0 failed to build throwing following error:

dllext.cpp: In function ‘size_t ListFileHeader(wchar*, Archive&)’:
dllext.cpp:539:33: error: unable to find string literal operator ‘operator""StringId’ with ‘const wchar_t [1]’, ‘long unsigned int’ arguments
 #define St(StringId) L""StringId""
                                 ^
dllext.cpp:650:38: note: in expansion of macro ‘St’
   wcs += msprintf(wcs, L"\n%12s: %s",St(MListName),Name);

I guess it's related on default C++ standard version. GCC 6 switched to C++14 by default, and I heard that string literal macro like that should have some space between tokens like following - I don't have an assertion, though.

#define St(StringId) L"" StringId ""

I'll test it and provide patch if it does.

rar2fs-1.15.0 fails to build against headers/library from upstream release of unrar-4.2.1

What steps will reproduce the problem?
1. Install unrar-4.2.1 with the libunrar and headers and point rar2fs to them.
2. Try to build rar2fs-1.15.0.

What do you see instead?

checking rar.hpp usability... yes
checking rar.hpp presence... yes
checking for rar.hpp... yes
checking for RARGetDllVersion in -lunrar... yes
checking for source revision in SVN... no
checking for sched_setaffinity... yes
checking whether cpu_set_t available... yes
checking whether the CPU_SET and CPU_ZERO macros are defined... yes
checking scandir ARG3 =&gt; const struct dirent * ... ok
checking if compiler supports -fno-omit-frame-pointer... yes
checking if compiler supports -Wno-unused-result... yes
checking if linker supports -rdynamic... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands
&gt;&gt;&gt; Source configured.
&gt;&gt;&gt; Compiling source in /var/tmp/portage/sys-fs/rar2fs-1.15.0/work/rar2fs-1.15.0 ...
make -j9 
make  all-am
make[1]: Entering directory `/var/tmp/portage/sys-fs/rar2fs-1.15.0/work/rar2fs-1.15.0'
x86_64-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I.  -I/usr/include/libunrar -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -DNDEBUG -DRARDLL -Wall  -march=native -O2 -pipe -pthread -c -o dllext.o dllext.cpp
x86_64-pc-linux-gnu-gcc -std=gnu99 -DHAVE_CONFIG_H -I.  -I/usr/include/libunrar -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -DNDEBUG -Wall -march=native -O2 -pipe -fno-omit-frame-pointer -Wno-unused-result -pthread -c configdb.c
x86_64-pc-linux-gnu-gcc -std=gnu99 -DHAVE_CONFIG_H -I.  -I/usr/include/libunrar -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -DNDEBUG -Wall -march=native -O2 -pipe -fno-omit-frame-pointer -Wno-unused-result -pthread -c filecache.c
x86_64-pc-linux-gnu-gcc -std=gnu99 -DHAVE_CONFIG_H -I.  -I/usr/include/libunrar -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -DNDEBUG -Wall -march=native -O2 -pipe -fno-omit-frame-pointer -Wno-unused-result -pthread -c iobuffer.c
x86_64-pc-linux-gnu-gcc -std=gnu99 -DHAVE_CONFIG_H -I.  -I/usr/include/libunrar -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -DNDEBUG -Wall -march=native -O2 -pipe -fno-omit-frame-pointer -Wno-unused-result -pthread -c sighandler.c
x86_64-pc-linux-gnu-gcc -std=gnu99 -DHAVE_CONFIG_H -I.  -I/usr/include/libunrar -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -DNDEBUG -Wall -march=native -O2 -pipe -fno-omit-frame-pointer -Wno-unused-result -pthread -c dirlist.c
x86_64-pc-linux-gnu-gcc -std=gnu99 -DHAVE_CONFIG_H -I.  -I/usr/include/libunrar -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -DNDEBUG -Wall -march=native -O2 -pipe -fno-omit-frame-pointer -Wno-unused-result -pthread -c rar2fs.c
x86_64-pc-linux-gnu-gcc -std=gnu99 -DHAVE_CONFIG_H -I.  -I/usr/include/libunrar -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26 -DNDEBUG -Wall -march=native -O2 -pipe -fno-omit-frame-pointer -Wno-unused-result -pthread -c mkr2i.c
x86_64-pc-linux-gnu-gcc -std=gnu99 -o mkr2i mkr2i.o -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -rdynamic     
dllext.cpp: In function ‘int RarErrorToDll(int)’:
dllext.cpp:246:12: error: ‘FATAL_ERROR’ was not declared in this scope
dllext.cpp:248:12: error: ‘CRC_ERROR’ was not declared in this scope
dllext.cpp:250:12: error: ‘WRITE_ERROR’ was not declared in this scope
dllext.cpp:252:12: error: ‘OPEN_ERROR’ was not declared in this scope
dllext.cpp:254:12: error: ‘CREATE_ERROR’ was not declared in this scope
dllext.cpp:256:12: error: ‘MEMORY_ERROR’ was not declared in this scope
dllext.cpp:258:12: error: ‘SUCCESS’ was not declared in this scope
make[1]: *** [dllext.o] Error 1

<b>What version of the product are you using? On what operating system?</b>

Linux, gcc-4.6.x, glibc-2.15.x, Gentoo (I'm the maintainer for unrar and rar2fs in Gentoo just if you are intrested in knowing ;-)

Original issue reported on code.google.com by ssuominen.private on 2012-05-05

FreeBSD 8.2 compile error (64 bits)

Hi,

While trying to compile rar2fs 1.12.0 on freebsd 8.2 I'm getting this compile error:

gcc -g -rdynamic -fno-omit-frame-pointer -O2 -std=c99 -Wall  -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DHAS_GLIBC_CUSTOM_STREAMS_ -DRARDLL -DFUSE_USE_VERSION=27 -MD -I./unrar -I -c configdb.c
/usr/lib/crt1.o(.text+0x8a): In function `_start':
: undefined reference to `main'
gmake: *** [configdb.o] Error 1

Hope you can help me out with this since I'm not clever enough :)

Cheers,
Joris

Original issue reported on code.google.com by wiebel on 2011-05-29

Tag new release

Hi Hasse69,

When #49 is resolved or #47 (or sooner, if you feel like it), could you please tag the release so distro maintainers can get atleast the ISO fix? I'm seeing sporadic corruption recently with rar2fs; not sure what's going on.

OSX build fails.

Hey Hans,

Here I am again :)
I'm trying to build rar2fs on osx (svn version) and it fails with the following error:
gcc -o rar2fs  dllext.o configdb.o filecache.o iobuffer.o sighandler.o rar2fs.o -L/opt/local/lib -L/usr/local/lib -lunrar -pthread -lstdc++ -lfuse_ino64
Undefined symbols:
  &quot;CommandData::AddArcName(char const*, wchar_t const*)&quot;, referenced from:
      _RARInitArchiveEx in dllext.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [rar2fs] Error 1

Hope you can help me again :)

Cheers,
Joris

Original issue reported on code.google.com by wiebel on 2011-05-29

Can't read file (over 4G?)

What steps will reproduce the problem?

1. Create 16GiB blank file with truncate.
    # truncate -s 16G test

2. Compress this file with WinRAR 5.00. I used following options:
    -cfg- -ep1 -htb -m5 -ma5 -mcD -md256m -ms- -mt1 -oi:0 -qo- -scu -s-

3. Mount archive with rar2fs.

4. Try to read compressed file with dd.
    # dd if=(mounted path)/test of=/dev/null bs=8k count=32

What is the expected output? What do you see instead?

     - It must be read data correctly. But, it hangs. dd won't kill even sends SIGKILL. rar2fs process can be kill only with SIGKILL. dd reports 0 bytes readed.

What version of the product are you using? On what operating system?

    fuse 2.9.3 (openSUSE 13.1 RC1, x86_64), unrar 5.0.12, rar2fs 1.18.0

Please provide any additional information below.

     - It seems occur with archive which has very large archived file offset. I'll attach example file which is explained above.

    p.s. I'm sorry about my poor english.

Original issue reported on code.google.com by jyhpsycho on 2013-11-04

rar2fs returns wrong timestamp for file using "store identical file as references" feature.

What steps will reproduce the problem?

  • I explain whole steps to reproduce this issue.
  • Create following hierarchy.
localhost rar2fs # l -R RAR
RAR:
total 0
drwxr-xr-x 2 root root 60 2014-07-01 19:52:16.644092426 +0900 BASE/
drwxr-xr-x 2 root root 60 2014-07-01 19:52:31.117426015 +0900 LINK/

RAR/BASE:
total 1932
-rw-r--r-- 1 root root 1977432 2013-12-01 17:09:04.000000000 +0900 winrar-x64-501.exe

RAR/LINK:
total 1932
-rw-r--r-- 1 root root 1977432 2014-07-01 19:53:15.084093461 +0900 winrar-x64-501.exe
  • Create archive using following command.
    • NOTE : I used Windows version of RAR as reference.
      -oi:0 option scans any size of identical file.
localhost rar2fs # WINEPREFIX=/mnt/WINRAR_ROOT wine 'C:\Program Files\WinRAR\Rar.exe' a -ma5 -m0 -oi:0 RAR.rar RAR
  • mount that archive using rar2fs.
localhost rar2fs # mkdir TEST
localhost rar2fs # rar2fs -o allow_other,ro RAR.rar TEST/
  • Print file list.
localhost rar2fs # l -R TEST/RAR
TEST/RAR:
total 16
drwxr-xr-x 2 root root 4096 2014-07-01 19:52:16.644092400 +0900 BASE/
drwxr-xr-x 2 root root 4096 2014-07-01 19:52:31.117426000 +0900 LINK/

TEST/RAR/BASE:
total 1932
-rw-r--r-- 1 root root 1977432 2013-12-01 17:09:04.000000000 +0900 winrar-x64-501.exe

TEST/RAR/LINK:
total 1932
-rw-r--r-- 1 root root 1977432 2013-12-01 17:09:04.000000000 +0900 winrar-x64-501.exe

What is the expected output? What do you see instead?

  • LINK/winrar-x64-501.exe must have timestamp as '2014-07-01 19:53:15.084093461 +0900', but it reports ' 2013-12-01 17:09:04.000000000 +0900' as referenced target(original file)'s timestamp.

What version of the product are you using? On what operating system?

  • OS: Gentoo x86-64
    # rar2fs -V
    rar2fs v1.20.0 (DLL version 6)    Copyright (C) 2009-2014 Hans Beckerus
    This program comes with ABSOLUTELY NO WARRANTY.
    This is free software, and you are welcome to redistribute it under
    certain conditions; see &lt;http://www.gnu.org/licenses/&gt; for details.
    FUSE library version: 2.9.3
    fusermount version: 2.9.3
    using FUSE kernel interface version 7.19

    # emerge --search unrar
    Searching...    
    [ Results for search key : unrar ]
    [ Applications found : 3 ]

    *  app-arch/unrar
          Latest version available: 5.1.5
          Latest version installed: 5.1.5
          Size of files: 210 kB
          Homepage:      http://www.rarlab.com/rar_add.htm
          Description:   Uncompress rar files
          License:       unRAR
  • NOTE : Provided version by gentoo portage sysetm is not recent version(5.1.6), but I tested with 5.1.6 manually. It has same problem, too.

Please provide any additional information below.

  • unrar included in libunrar package extracts contents with correct timestamp(1 second precision, though).
  • I'll attach sample file explained above.

Original issue reported on code.google.com by jyhpsycho on 2014-07-01 11:16:23

Checking UnRAR version matches header and library - ignores LIBS variable

What steps will reproduce the problem?

  • run configure with LIBS='-lstdc++ -lpthread'

What is the expected output? What do you see instead?

Expected :
checking for matching UnRAR library and source version... yes

Actual:
checking for matching UnRAR library and source version... no
configure: error: in /dev/shm/rar2fs/rar2fs-1.8.4-test': configure: error: The version of UnRAR source pointed to by --with-unrar=../unrar and the current shared library picked up at link time are incompatible. Add an alternative library search path using --with-unrar-lib and/or an alternative source search path using --with-unrar and rerun configure. Seeconfig.log' for more details

What version of the product are you using? On what operating system?

  • rar2fs r411. openSUSE 13.1 RC1.

Please provide any additional information below.

  • When I tried to use static libunrar, this error occur. It needs LIBS variable for successfully compile. With shared version of libunrar, it doesn't needed. But, I think it should respect LIBS variable as other parts of checking some features.

I'll attach one patch can fix this.

Original issue reported on code.google.com by jyhpsycho on 2013-11-10

RAR contents inside archive not listed

What steps will reproduce the problem?

  1. build rar2fs-1.19.0 without fmemopen support
  2. mount a rar file which contains another rar file inside
  3. access the directory

What is the expected output? What do you see instead?
expected output is the listing of the contents of the contained rar file. Instead you get a listing without this, an error (in ls) and the rar file with unknown metadata. e.g.

root@alexandria:/mnt/md0/downloads# ls -l test2
ls: cannot access test2/inner_archive.rar: No such file or directory
total 296
-rw-r--r-- 1 root root 303029 Jan  8 21:06 file.idx
?????????? ? ?    ?         ?            ? inner_archive.rar

What version of the product are you using? On what operating system?
Using rar2fs-1.19.0 with unrar-5.0.14 on an armv5tel with uClibc.

Please provide any additional information below.
unrar-4.2.24 is working. The contents of the rar files are:

root@alexandria:/mnt/md0/downloads# unrar l test/bob.rar 

UNRAR 5.01 freeware      Copyright (c) 1993-2013 Alexander Roshal

Archive: test/bob.rar
Details: RAR 4

 Attributes      Size    Date   Time   Name
----------- ---------  -------- -----  ----
    ..A....    303029  08-01-14 21:06  file.idx
    ..A....   7884165  08-01-14 21:31  inner_archive.rar
----------- ---------  -------- -----  ----
              8187194                  2

Original issue reported on code.google.com by fafarago on 2014-01-13

Cannot list any contents in archive on FreeBSD 10.

What steps will reproduce the problem?

  1. Compile rar2fs using any dirty method currently available.
  2. mount archive.
  3. run ls.

What is the expected output? What do you see instead?

  • It should display contents of archive. but, it doesn't. ls displays just empty directory.

What version of the product are you using? On what operating system?

  • FreeBSD 10.0-STABLE x86-64, rar2fs r463, libunrar 5.0.14

Please provide any additional information below.

  • Currently I used ~46GiB RARv5 archive file. Because of I cannot using WINE under FreeBSD Currently(missing i386 support when compiling kernel), I cannot perform test with smaller file.

Original issue reported on code.google.com by jyhpsycho on 2014-03-07 03:12:14

rar2fs --help

Some output is sent to standard output and some is sent to standard error.

rar2fs v1.17.2
FUSE library version: 2.9.2
fusermount version: 2.9.2
using FUSE kernel interface version 7.19

Linux GXT3 3.9-1-amd64 #&nbsp;1 SMP Debian 3.9.8-1 x86_64 GNU/Linux

Original issue reported on code.google.com by delf.eldkraft on 2013-07-24

random crashes

rar2fs v1.19.0 (DLL version 6)    Copyright (C) 2009-2013 Hans Beckerus
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under
certain conditions; see &lt;http://www.gnu.org/licenses/&gt; for details.
FUSE library version: 2.8.5
fusermount version: 2.8.5
using FUSE kernel interface version 7.12

Native build on NAS (DNS323) ARM machine with unrar-5.0.14, also natively built.

I get random crashes just trying to list the directory of the mounted rar file. Rebuilt the package with --enable-debug and debug symbols enabled, so can trace in gdb, but so far haven't gotten much wiser. Seems like it doesn't like multi-part rar files? f I set a seek-length=1 I do get at least a directory listing. 
I tried mounting single-file rar files, that seems to work better, however at some point I will get the same backtrace as below. Any ideas to solve this? So would like to have rar2fs working with minidlna[*] and stream films to my tv :)

Looking up /Captain.Phillips.2013.720p.BluRay.X264-AMIABLE.mkv in cache
Adding /Captain.Phillips.2013.720p.BluRay.X264-AMIABLE.mkv to cache
listrar()   /   arch=/mnt/md0/downloads/Captain.Phillips.2013.720p.BluRay.X264-AMIABLE/captain.phillips.2013.720p.bluray.x264-amiable.r00
[New Thread 0x40b194c0 (LWP 1889)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x40b194c0 (LWP 1889)]
0x402cd080 in wcscpy () from /ffp/lib/libc.so.0
(gdb) bt
#&nbsp;0  0x402cd080 in wcscpy () from /ffp/lib/libc.so.0
#&nbsp;1  0x4004a720 in StringList::AddString(wchar_t const*) () from /ffp/lib/libunrar.so
#&nbsp;2  0x40076264 in RAROpenArchiveEx () from /ffp/lib/libunrar.so
#&nbsp;3  0x0001a0ac in listrar (path=0x9d0b8 &quot;/&quot;, buffer=0x40b18ce4, 
    arch=0x40b18b20 &quot;/mnt/md0/downloads/Captain.Phillips.2013.720p.BluRay.X264-AMIABLE/captain.phillips.2013.720p.bluray.x264-amiable.r00&quot;) at rar2fs.c:2024
#&nbsp;4  0x0001d20c in readdir_scan (dir=0x9d0b8 &quot;/&quot;, 
    root=0x40b18c80 &quot;/mnt/md0/downloads/Captain.Phillips.2013.720p.BluRay.X264-AMIABLE/&quot;, next=0x40b18ce4) at rar2fs.c:2470
#&nbsp;5  0x0001db58 in rar2_readdir (path=0x9d0b8 &quot;/&quot;, buffer=0x60540, filler=0x40014968, offset=0, fi=0x40b18dc8)
    at rar2fs.c:2682
#&nbsp;6  0x40017cb8 in fuse_fs_readdir () from /ffp/lib/libfuse.so.2
#&nbsp;7  0x40017ee0 in ?? () from /ffp/lib/libfuse.so.2
Cannot access memory at address 0x0
#&nbsp;8  0x40017ee0 in ?? () from /ffp/lib/libfuse.so.2
Cannot access memory at address 0x0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

[*] although when I did try the mounted file was not scanned, so I think I need some work there.

Original issue reported on code.google.com by fafarago on 2014-01-11

Feature request: Cashing to files.

Hi Hans,

I was thinking that caching to files might speed up things a little.
The idea is:
for each rar archive build a (md5) hash per file and cache that hash to a file (.$someprefix-$nameofrar.cache). When reading directories check for the cache file, if exists check md5sum of file it's representing , and if so,  use the info of the cache file instead of reading the rar file again.

Cheers,
Joris

Original issue reported on code.google.com by wiebel on 2011-05-30

Feature request: follow symbolic links

rar2fs currently doesn't follow symbolic links.
Symlinced folders which contains rar files are presented as rar files.

Is there a chance to get symbolic links followed?

Thanks

rar2fs stops responding and taking up 100% of cpu

I have an Ubuntu 12.04 LTS machine with plex media server that accesses
an ext 4 partition on a raid via rar2fs. About once every day i have to kill -9 &lt;rar2fs pid&gt; and umount my dir because rar2fs locks up using all the cpu cycles it can get.

cmndline for rar2fs as root: rar2fs --seek-length=1 -o allow_other /data/media/ /data/rar2media/

rar2fs -V gives:
rar2fs v1.15.5 build 310 (DLL version 5)    Copyright (C) 2009-2012 Hans Beckerus
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under
certain conditions; see &lt;http://www.gnu.org/licenses/&gt; for details.
FUSE library version: 2.8.6
fusermount version: 2.8.6
using FUSE kernel interface version 7.12

When rar2fs isn't locking up it works just as it is supposed to. I have fsck:ed the data drive and the ubunto os is a fresh install.

On my old server rar2fs didnt have the -o allow_other option so i had to run rar2fs as the user plex so i'm going to try that now.

/Jerry

Original issue reported on code.google.com by rapp.jerry on 2013-01-17

Can't compile on Debian Squeeze

Hello, I have tried compiling both the stable and the svn versions of rar2fs in Debian Squeeze, but I get:

$ make
g++ -g -rdynamic -fno-omit-frame-pointer -O2  -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DRARDLL  -MD -I./unrar -c dllext.cpp
gcc -g -rdynamic -fno-omit-frame-pointer -O2 -std=c99 -Wall  -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -DHAS_GLIBC_CUSTOM_STREAMS_ -DRARDLL -DFUSE_USE_VERSION=27  -MD -I./unrar -I -c configdb.c
/usr/lib/gcc/i486-linux-gnu/4.4.5/../../../../lib/crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: ld returned 1 exit status
make: ** [configdb.o] Error 1

After some google search, I found that what could cause this is if there was no main function, but I know this doesn't apply. So, your help will be appreciated!

Original issue reported on code.google.com by teresaejunior on 2011-07-16

--iob-size arg not parsed

What steps will reproduce the problem?

  1. create a passworded RAR archive, eg "rar a -m0 -v15000000b -hpPASS -vn test.rar *.avi"
  2. echo password to test.pwd, eg "echo PASS > test.pwd"
  3. confirm that rar2fs successfully mounts the RAR archive without --iob-size option, eg "rar2fs *.rar /mnt/rar2fs; ls /mnt/rar2fs"
  4. try mounting with --iob-size option, eg "rar2fs *.rar /mnt/rar2fs --iob-size=8". rar2fs prints usage info.
  5. confirm that rar2fs parses the --iob-size option but not the argument, eg "rar2fs *.rar /mnt/rar2fs --iob-size". rar2fs prints error message about missing arg.

What version of the product are you using? On what operating system?
Using rar2fs v1.17.2 (latest version in my repo) and v1.18.0 (manually compiled).

Please provide any additional information below.
Trying to increase cache so I can seek in videos that are contained inside passworded RARs.

Original issue reported on code.google.com by [email protected] on 2014-01-14

rar2fs returns wrong timestamp with legacy format.

Original issue 36 created by hasse69 on 2014-07-01T12:11:27.000Z:

What steps will reproduce the problem?

  • Prepare file.
    • NOTE : "l" is aslias for "ls -lAF --full-time".
    # l
    total 1932
    -rw-r--r-- 1 root root 1977432 2014-07-01 21:00:52.207498641 +0900 winrar-x64-501.exe
  • Create RAR legacy format file contains that file.
    • NOTE : WinRAR creates legacy format of archive file by default unless user specifies -ma5 option.
    # WINEPREFIX=/mnt/WINRAR_ROOT wine 'C:\Program Files\WinRAR\Rar.exe' a -m0 RAR.rar winrar-x64-501.exe
  • Mount archive.
    # mkdir TEST
    # rar2fs -o ro,allow_other RAR.rar TEST

    4. Listing file.

    # l TEST/
    total 1932
    -rw-r--r-- 1 root root 1977432 2014-07-01 21:01:17.207498600 +0900 winrar-x64-501.exe

What is the expected output? What do you see instead?

  • It must be '2014-07-01 21:00:52.207498641 +0900', but it returns '2014-07-01 21:01:17.207498600 +0900' as +25 seconds after than original.

What version of the product are you using? On what operating system?

  • OS : Gentoo x86_64
    # rar2fs -V
    rar2fs v1.20.0 (DLL version 6)    Copyright (C) 2009-2014 Hans Beckerus
    This program comes with ABSOLUTELY NO WARRANTY.
    This is free software, and you are welcome to redistribute it under
    certain conditions; see &lt;http://www.gnu.org/licenses/&gt; for details.
    FUSE library version: 2.9.3
    fusermount version: 2.9.3
    using FUSE kernel interface version 7.19

    # emerge --search unrar
    Searching...    
    [ Results for search key : unrar ]
    [ Applications found : 3 ]

    *  app-arch/unrar
          Latest version available: 5.1.5
          Latest version installed: 5.1.5
          Size of files: 210 kB
          Homepage:      http://www.rarlab.com/rar_add.htm
          Description:   Uncompress rar files
          License:       unRAR

Please provide any additional information below.

  • I'll attach sample file to reproduce this issue.

Original issue reported on code.google.com by jyhpsycho on 2014-07-01 21:00:52

Mounting 1st volume of archive set doesn't handle whole archive.

What steps will reproduce the problem?

  1. Create volume archive.
  2. Mount archive using 1st archive file name.
  3. Run ls -laR.
  • Instruction step below.

What is the expected output? What do you see instead?

  • Two listing should be identical, but File-based mount doesn't show some of archive contents.

What version of the product are you using? On what operating system?
openSUSE 13.1 x86-64, with unrar 5.0.14

# ../rar2fs-read-only/rar2fs -V
rar2fs v1.19.4-svnr440 (DLL version 6)    Copyright (C) 2009-2013 Hans Beckerus
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under
certain conditions; see &lt;http://www.gnu.org/licenses/&gt; for details.
FUSE library version: 2.9.3
fusermount version: 2.9.3
using FUSE kernel interface version 7.19

<b>Please provide any additional information below.</b>

1. Create directory hierarchy for test.
# mkdir ARCHIVES TEST mount_dir mount_file

2. Create dummy file for test.
# truncate -s 1M TEST/{1,2}

3. Create volume archive. I used 512KB volume size and store mode.
# wine 'C:\Program Files\WinRAR\Rar.exe' a -m0 -v524288b ARCHIVES/TEST.rar TEST

4. Mount archive.
# ../rar2fs-read-only/rar2fs -o ro,allow_other ARCHIVES/TEST.part1.rar mount_file/
# ../rar2fs-read-only/rar2fs -o ro,allow_other ARCHIVES/ mount_dir/

5. Get directory listing.
# ls -laR mount*/TEST
mount_dir/TEST:
total 2064
drwxr-xr-x 2 root   root     4096 Feb  1 21:50 .
drwxr-xr-x 2 psycho users     140 Feb  1 21:51 ..
-rw-r--r-- 1 root   root  1048576 Feb  1 21:50 1
-rw-r--r-- 1 root   root  1048576 Feb  1 21:50 2

mount_file/TEST:
total 1036
drwxr-xr-x 2 root   root     4096 Feb  1 21:50 .
drwxr-xr-x 2 psycho users     140 Feb  1 21:51 ..
-rw-r--r-- 1 root   root  1048576 Feb  1 21:50 2

* Note that I used tmpfs for test, and tmpfs stores file reverse order that it creates. Thus RAR stores &quot;2&quot; in archive first.

Original issue reported on code.google.com by jyhpsycho on 2014-02-01

rar2fs hangs when symbolic links present

​​When a relative symbolic link to a file is present in the root mounted folder and the mount point is inside it, the folder becomes unresponsive when accessed.

This structure reproduces the problem:
rarDir/file.rar
linkToFile -> mountDir/rarDir/file
mountDir

Mount with:
$ rar2fs . mountDir

$ ls mountDir
Will hang indefinitely.

If the link is created after mounting, it works correctly. But when mounted again the folder becomes unresponsive.

If the link is to an absolute path ( linkToFile -> /home/user/testRAR/mountDir/rarDir/file ) it works correctly.

rar2fs v1.22.0 (DLL version 7)
FUSE library version: 2.9.5
fusermount version: 2.9.5
using FUSE kernel interface version 7.19

Timestamp mismatch

What steps will reproduce the problem?

  1. Make some archive.
  2. Mount that archive.
  3. Compare timestamp using "ls --full-time".

What is the expected output? What do you see instead?

That should be identical. But, rar2fs returns wrong timestamp. Its differences are several seconds. On Linux, Linux version of rar treats timestamps only second-precision, but that's value are correct. Using Windows version of WinRAR with WINE, It handles 100-nanosecond precision and extracts correctly.

Original file :

-rw-r--r--  1 root   root  23501538393 2013-08-30 15:26:06.012630700 +0900 Vol.1.rar
-rw-r--r--  1 root   root  22110405466 2013-09-19 19:52:26.124659000 +0900 Vol.2.rar
-rw-r--r--  1 root   root  22274030773 2013-10-27 14:54:30.477460700 +0900 Vol.3.rar
-rw-r--r--  1 root   root  20987668628 2013-11-09 09:17:06.154892900 +0900 Vol.4.rar
-rw-r--r--  1 root   root  22540994209 2014-01-27 13:10:39.901638700 +0900 Vol.5.rar
-rw-r--r--  1 root   root  23608165738 2014-01-27 09:21:30.425213700 +0900 Vol.6.rar

rar2fs' output :

-rw-r--r--  1 root   root  23501538393 2013-08-30 15:26:03.000000000 +0900 Vol.1.rar
-rw-r--r--  1 root   root  22110405466 2013-09-19 19:52:13.000000000 +0900 Vol.2.rar
-rw-r--r--  1 root   root  22274030773 2013-10-27 14:54:15.000000000 +0900 Vol.3.rar
-rw-r--r--  1 root   root  20987668628 2013-11-09 09:17:03.000000000 +0900 Vol.4.rar
-rw-r--r--  1 root   root  22540994209 2014-01-27 13:10:19.000000000 +0900 Vol.5.rar
-rw-r--r--  1 root   root  23608165738 2014-01-27 09:21:15.000000000 +0900 Vol.6.rar

What version of the product are you using? On what operating system?

openSUSE 13.1 x86-64, unrar 5.0.14

# rar2fs -V
rar2fs v1.19.8 (DLL version 6)    Copyright (C) 2009-2014 Hans Beckerus
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under
certain conditions; see &lt;http://www.gnu.org/licenses/&gt; for details.
FUSE library version: 2.9.3
fusermount version: 2.9.3
using FUSE kernel interface version 7.19

Please provide any additional information below.

Yes, it's not major bug which is related real data. But I think that should be fixed...

Original issue reported on code.google.com by jyhpsycho on 2014-02-21

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.