Ticket #39 (closed defect: fixed)

Opened 6 years ago

Last modified 9 months ago

trying to download on fat

Reported by: some1 Owned by: rakshasa
Priority: high Component: libtorrent
Version: HEAD Severity: normal
Keywords: Caught exception Cc:

Description

Whenever I try to download anything with rtorrent on a mounted fat32 fs, an error appears: "Caught exception: "Could not resize files"". With native (ext3) fs everything works fine. BTW, other torrent clients don't have this kind of problem.

Change History

  Changed 6 years ago by rakshasa

  • component changed from rtorrent to libtorrent
  • milestone set to 0.8 Sodden Squirrel

  Changed 6 years ago by rakshasa

  • milestone changed from 0.8 Sodden Squirrel to 1.0 Soggy Rabbit

  Changed 6 years ago by anonymous

  • priority changed from normal to high

Could be due to libtorrent using ftruncate to resize files on disk (data/File::set_size())

 http://www.winehq.org/hypermail/wine-devel/2002/01/att-0500/01-FSERVER.TXT

Please fix.

  Changed 6 years ago by anonymous

Updated doc about disk allocation.

  Changed 6 years ago by rakshasa

A few days ago I implemented a work-around that uses lseek and write. The problem with this is that it blocks for a long time. I might make enabling this a compile time option, atleast until i've made a worker thread for dealing with various IO stuff.

  Changed 6 years ago by anonymous

Or you can make libtorrent allocate disk space on demand like most other bittorrent clients. Allocate in the unit of Chunks when writing a fresh chunk will help to make the system more responsive.

Of course you can also cooperate the allocation into a timeout signal and allocate a small piece a time.

  Changed 6 years ago by rakshasa

There are advantages and disadvantages to both methods of allocating, but I'm not going to let a vfat specific bug affect that. The problem here is that a file resize that should have taken O(1) time takes O(N) time on vfat due to a bug.

  Changed 6 years ago by anonymous

From man ftruncate, it's not really a bug. Posix allows both behaviors when length is bigger than file size.

So resize can still use ftruncate, when ftruncate returns -1, a lseek based resize function could be called to perform a not so perfect resizing. On most Unix filesystem, O(1) will be ensured.

Still allocation on demand will have some advantage if libtorrent is ported to the evil OS in the future.

  Changed 6 years ago by rakshasa

O(1) isn't ensured on vfat using linux-2.6.9. The lseek+write seems to require the whole file to be blanked by the kernel, rather than waiting until the pages are written to.

  Changed 6 years ago by anonymous

vfat is not a "Unix filesystem".

  Changed 6 years ago by rakshasa

  • status changed from new to closed
  • resolution set to fixed

Yet some people still mount vfat filesystems from unix. This bug is fixed in SVN, but does ATM block. I might improve this later.

follow-up: ↓ 14   Changed 19 months ago by anonymous

I have the same problem. Is there any master hand can help us?  http://www.astrabeds.com/latex-mattresses.html

  Changed 18 months ago by anonymous

I've watched his performance twice and I still can't let them out of my mind. He's a terrific pianist!  http://www.esleepmasters.com/Hammock_Chair_Stands_s/1869.htm

in reply to: ↑ 12   Changed 17 months ago by anonymous

Replying to anonymous:

I have the same problem. Is there any master hand can help us?

What problem are you referring to mate? Maybe I can help since the others are not responding.  shemale cams

  Changed 16 months ago by anonymous

Nice Website. You should think more about RSS Feeds as a traffic source. They bring me a nice bit of traffic.  Dissertation Writing |  Custom Dissertation Writing

  Changed 15 months ago by WhiteMelon

The climate changing also have role in this. All component in earth have relations one and other. We must care of all aspects.  free business listings

  Changed 13 months ago by anonymous

Hua 110107Going to an amusement classic short uggs park or ball game, watching a movie or television, are fun activities that help us relax, temporarily forget our problems and maybe even laugh. But they do not bring happiness, because their ugg bailey button boots positive effects end when the fun ends.  http://www.fitflopinuk.com/

  Changed 12 months ago by bingo

One of their best services, they will deliver their passenger to the airport and for free. That's an amazing services.  http://www.divertinia.com/

  Changed 10 months ago by karl

Rtorrent? Do you mean rtorrent.com? I faced the same problem with one russian torrent, don't remember its name, but it was solved in an easy way. Please feel free to ask if anyone wants to know the solution.

  Changed 9 months ago by rakshasa

  • milestone 1.0 Soggy Rabbit deleted

Milestone 1.0 Soggy Rabbit deleted

Note: See TracTickets for help on using tickets.