Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0003455OCamlOCaml generalpublic2005-02-03 19:342006-02-10 16:13
Reporteradministrator 
Assigned To 
PrioritynormalSeverityfeatureReproducibilityalways
StatusacknowledgedResolutionopen 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0003455: Unix st_ino and st_dev overflow (> 30 bits)
DescriptionFull_Name: Marc Herbert
Version: 3.08.2
OS: linux
Submission from: lns-vlq-38-lyo-82-253-157-250.adsl.proxad.net (82.253.157.250)



Unix.stats
 http://caml.inria.fr/ocaml/htmlman/libref/Unix.html#TYPEstats [^]

type stats = {
   st_dev : int; (* Device number *)
   st_ino : int; (* Inode number *)

My favourite POSIX.1 bible (Lewine) leaves st_ino and st_dev types
"private" to the implementation. On my linux machine for instance
st_dev is u64 and st_ino is u32. So I would say there is a
sign/overflow issue here.

Granted, most users probably don't have more than 1 billion file on
their filesystems, but filesystesm may use high bits to store meta-data (like
OCaml does with integers), and they may use whatever numbering they
like. But the worst is that some huge filesystems (for instance
distributed ones) may already reach this number of inodes.

Actually, even such a "small" filesystem as linux' ext2/3 may be an
issue in the future, see for instance:
http://e2fsprogs.sourceforge.net/extensions-ext23/ [^]

"One potential solution would be to extend the inode number to be 64
bits, and then encode the block group information explicitly into the
high bits of the inode number. [...] Another potential solution to
this problem is to utilize inode numbers starting from the end of the
inode space"

And also:
http://lists.freebsd.org/pipermail/freebsd-current/2004-January/018647.html [^]
"So the reality is that the very large scalable file systems hash
larger identifiers into 32-bit values for local representation."
"ino_t probably does need to get bumped to 64-bit on FreeBSD at some point,"


This was somewhat previously posted in comp.lang.ml
http://groups.google.com/groups?selm=ct3c0k%24p49%241%40wolfberry.srv.cs.cmu.edu [^]
http://groups.google.com/groups?selm=ct3pvb%24su9%241%40wolfberry.srv.cs.cmu.edu [^]



PS: the slow performance of the bug search engine makes it almost unusable.

TagsNo tags attached.
Attached Files

- Relationships

-  Notes
(0000243)
administrator (administrator)
2005-09-24 18:56

Yes, Unix.stat API is not well-designed w.r.t. this issue. No obvious fix: if
st_ino and st_dev are really unspecified integer types, there is no
corresponding Caml integer type to use. Leave this a feature wish, but it
doesn't appear urgent at all. XL, 2005-09-24
(0003550)
anonymous (viewer)
2006-02-05 16:45

I think it would be safe to assume no local filesystem will ever use more than 64bits for any of those types.

So, putting aside the issue of galaxy-wide filesystems, could mapping those types to ocaml's int64 provide a decent fix?

- Issue History
Date Modified Username Field Change
2005-11-18 10:13 administrator New Issue
2006-02-03 17:13 anonymous Note Added: 0003528
2006-02-03 17:13 anonymous Note Added: 0003529
2006-02-03 17:32 doligez Note Deleted: 0003528
2006-02-03 17:33 doligez Note Deleted: 0003529
2006-02-04 17:25 anonymous Note Added: 0003532
2006-02-04 17:25 anonymous Note Added: 0003533
2006-02-04 17:29 anonymous Note Added: 0003534
2006-02-04 17:29 anonymous Note Added: 0003535
2006-02-04 17:33 anonymous Note Added: 0003536
2006-02-04 17:33 anonymous Note Added: 0003537
2006-02-04 17:36 xleroy Note Deleted: 0003532
2006-02-04 17:37 xleroy Note Deleted: 0003537
2006-02-04 17:37 xleroy Note Deleted: 0003536
2006-02-04 17:37 xleroy Note Deleted: 0003535
2006-02-04 17:37 xleroy Note Deleted: 0003534
2006-02-04 17:37 xleroy Note Deleted: 0003533
2006-02-05 01:01 anonymous Note Added: 0003538
2006-02-05 01:01 anonymous Note Added: 0003539
2006-02-05 01:01 anonymous Note Added: 0003540
2006-02-05 01:02 anonymous Note Added: 0003541
2006-02-05 01:03 anonymous Note Added: 0003542
2006-02-05 01:03 anonymous Note Added: 0003543
2006-02-05 01:08 anonymous Note Added: 0003544
2006-02-05 01:08 anonymous Note Added: 0003545
2006-02-05 08:38 anonymous Note Added: 0003546
2006-02-05 08:38 anonymous Note Added: 0003547
2006-02-05 08:44 anonymous Note Added: 0003548
2006-02-05 08:44 anonymous Note Added: 0003549
2006-02-05 16:38 anonymous Note Deleted: 0003538
2006-02-05 16:38 anonymous Note Deleted: 0003539
2006-02-05 16:39 anonymous Note Deleted: 0003540
2006-02-05 16:39 anonymous Note Deleted: 0003541
2006-02-05 16:39 anonymous Note Deleted: 0003542
2006-02-05 16:39 anonymous Note Deleted: 0003543
2006-02-05 16:39 anonymous Note Deleted: 0003545
2006-02-05 16:40 anonymous Note Deleted: 0003544
2006-02-05 16:40 anonymous Note Deleted: 0003546
2006-02-05 16:40 anonymous Note Deleted: 0003547
2006-02-05 16:40 anonymous Note Deleted: 0003548
2006-02-05 16:40 anonymous Note Deleted: 0003549
2006-02-05 16:45 anonymous Note Added: 0003550
2006-02-10 16:06 anonymous Note Added: 0003558
2006-02-10 16:06 anonymous Note Added: 0003559
2006-02-10 16:06 anonymous Note Added: 0003560
2006-02-10 16:07 anonymous Note Added: 0003561
2006-02-10 16:08 anonymous Note Added: 0003562
2006-02-10 16:09 anonymous Note Added: 0003563
2006-02-10 16:09 anonymous Note Added: 0003564
2006-02-10 16:09 anonymous Note Added: 0003565
2006-02-10 16:09 anonymous Note Added: 0003566
2006-02-10 16:09 anonymous Note Added: 0003567
2006-02-10 16:09 anonymous Note Added: 0003568
2006-02-10 16:09 anonymous Note Added: 0003569
2006-02-10 16:12 anonymous Note Added: 0003570
2006-02-10 16:12 anonymous Note Added: 0003571
2006-02-10 16:13 anonymous Note Added: 0003572
2006-02-10 16:13 anonymous Note Added: 0003573
2006-02-13 09:08 guesdon Note Deleted: 0003558
2006-02-13 09:09 guesdon Note Deleted: 0003573
2006-02-13 09:09 guesdon Note Deleted: 0003572
2006-02-13 09:09 guesdon Note Deleted: 0003571
2006-02-13 09:10 guesdon Note Deleted: 0003559
2006-02-13 09:10 guesdon Note Deleted: 0003561
2006-02-13 09:10 guesdon Note Deleted: 0003562
2006-02-13 09:10 guesdon Note Deleted: 0003563
2006-02-13 09:10 guesdon Note Deleted: 0003560
2006-02-13 09:10 guesdon Note Deleted: 0003564
2006-02-13 09:10 guesdon Note Deleted: 0003565
2006-02-13 09:10 guesdon Note Deleted: 0003566
2006-02-13 09:10 guesdon Note Deleted: 0003567
2006-02-13 09:10 guesdon Note Deleted: 0003568
2006-02-13 09:10 guesdon Note Deleted: 0003569
2006-02-13 09:10 guesdon Note Deleted: 0003570


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker