Bug#898287: Subject: disorderfs inode on getdents

Omar Navarro Leija omarsa at seas.upenn.edu
Wed May 9 19:58:25 BST 2018


Package: disorderfs
Version: 0.5.2
Severity: [normal]

When using disorderfs the inodes returned by a system call to getdents are
all the same value:
> disorderfs Getdents/ disorder/
disorderfs: reversing dirents
> cd disorder/
disorder ) ./getdents
--------------- nread=80 ---------------
*i-node#*  file type  d_reclen  d_off   d_name
*4294967295*  ???          24         32  ..
*4294967295*  ???          24         64  .
*4294967295*  ???          32         96  getdents

*getdents *is a tiny C program copied from the man 2 getdents example at
the bottom.

Meanwhile stat correctly returns a unique inode:
> stat getdents
  File: getdents
  Size: 8512          Blocks: 25         IO Block: 4096   regular file
Device: 30h/48d    *Inode: 2*           Links: 1
...
disorder ) stat .
  File: .
  Size: 4096          Blocks: 9          IO Block: 4096   directory
Device: 30h/48d    *Inode: 1*           Links: 2

This leads to an inconsistent state between inodes as well as breaking
assumptions programs might make about unique inodes when checking the
results of getdents.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/reproducible-builds/attachments/20180509/16ceed48/attachment.html>


More information about the Reproducible-builds mailing list