Slashdot Mirror


Hans Reiser Interview from Prison

JLester writes "Wired Magazine has an interview this month with Hans Reiser (of the ReiserFS journaling file system for Linux) from prison. It contains more details about the murder case against him. Some of the questions still go unanswered though."

23 of 611 comments (clear)

  1. obHumor by Megaweapon · · Score: 5, Funny

    In Reiser's case, a critical piece of data -- the location of Nina Reiser -- has gone missing.

    It should be in the journal somewhere.

    --
    I'm sure "SlashdotMedia" will improve on all the wonders that Dice Holdings blessed us all with
    1. Re:obHumor by Anonymous Coward · · Score: 5, Interesting

      You are quite possibly the only person on Slashdot (Or at least, the only person who posts under their real name) who has a personal connection to Hans & Nina Reiser. You shouldn't be too surprised that the vast majority of posters arn't going to take it as seriously.

    2. Re:obHumor by Anonymous Coward · · Score: 5, Insightful
      Yeah it was bad.


      I've listened to Hans over the years in lkml. He's an odd one. He might be a genius, it's possible, if he played well with others he'd almost certainly be a community hero. It's also possible he has some severe emotional or mental problems, maybe mild autism, I'm no psychiatrist but I'd say that this is more than possible and probably likely. He also has this incredible quality to completely ignore what someone says and just focus on what he wants. It's like he's incapable of comprehending English (or any human to human language) when he's in this sort of fit. That's why rfs4 isn't in the kernel, all he had to do was play nice with others and answer their concerns, it'd be done by now if he did but every question was always answered with some fear or something completely unrelated. You can ask him a question and he hears something else, he'll respond but it's like he didn't see or hear your question. Then at other times he's remarkably lucid.


      Now this is crappy journalism. It sounds like Hans to me though. This doesn't bode well for his case. He's going to prison when this is done. His lawyers should have kept him from saying anything. He's looking down the barrel of a long stay in prison, everything looks like he did it and was prepared to flee. An article on a popular magazine with "if( node->parent == NULL) printk("parent not found")" isn't what you want.

    3. Re:obHumor by Lord+Ender · · Score: 5, Funny

      Maybe we should have a bit more respect this time.
      Bruce Perens, welcome to the Internet!
      --
      A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
    4. Re:obHumor by CommunistHamster · · Score: 5, Funny

      When Linus dies? I think you mean "if".

    5. Re:obHumor by mbadolato · · Score: 5, Interesting

      There's also the 3 guys that were accused, when they were teenagers, of killing three eight year-old boys, and were placed in jail (one on death row). The evidence is absolute crap, and the "investigation" into the murders was bumbled and shoddy. The key evidence against the "leader" was that he wore black a lot and liked to read about Wicca and other "satanic" and "demonic" things... like heavy metal music. Oh no!

      HBO has played two documentaries on this case (Paradise Lost and Paradise Lost 2) and they are enraging. Granted you're seeing edited information, but if you can, I'd really recommned seeing these two DVDs. Amazon is selling them DVD 1 and DVD 2

      There's also a web site dedicate to the cause of helping the guys (Known as The West Memphis Three) get a fair trial and have real evidence shown (which there doesn't seem to be any of). Visit wm3.org for details.

      I've been fascinated with this case for 10+ years and check out the wm3 site a few times a year to see what's new with the case. It's an absolute tragedy that three children were killed, and it's another tragedy that three other lives (teenagers) were destroyed as well if in fact they are innocent, as it would seem they may be.

  2. unanswered questions... by Speare · · Score: 5, Funny

    Some of the questions still go unanswered though.
    "Hans, on line 934 of journalcache.c, is that preincrement of bufptr really supposed to be a postincrement?"
    --
    [ .sig file not found ]
  3. Re:if i did it, here's how it happened by superid · · Score: 5, Funny

    "If I coded it, here's how I coded it"

  4. my theory after reading TFA by Anonymous Coward · · Score: 5, Insightful

    My theory is this: Nina went back to russia, and is now living there. The fact that the kids are in russia, and were supposed to return weeks ago, but haven't, makes me think that maybe they were reunited with their mother there. Just a thought.

    1. Re:my theory after reading TFA by Anonymous Coward · · Score: 5, Informative

      problem here is that my gf was one of her best friends. neither she, nor any of her other friends, have heard from her. I (well, really my gf, who knew her) don't think that was in character from this woman. If she was back in russia, presumably her friends would know.

  5. Choice bits by antime · · Score: 5, Funny

    Reiser is worried that Sturgeon is trying to teach Rory and Niorline that pain can be fun and is furious when Sturgeon gives them what Reiser refers to in a sworn court filing as "gender confused alternative sexuality dolls."
    Is that what they call Teletubbies these days?
  6. This story is going from 'weird' to 'surreal' by Idaho · · Score: 5, Interesting

    The story about Hans Reiser gets weirder every time I read about it. It's like you're reading some surrealistic novel, or maybe a plot by Grisham.

    For one, there is the question whether he is being framed (by a former friend, russian mafia, ... ?)
    Also there is the problem of (suspected) murder, but no body has been found. So, all evidence will be circumstantial and therefore open to lots of discussion/interpretation. "The brothers Karamazov" by Dostojevski has some very nice examples of how wide apart such interpretations can be (without the reader being able to tell which interpretation is true). Probably someone could write an interesting novel based on this story as well. It's getting so weird, you just can't make such stuff up.

    It could become an interesting case to follow, so I'm hoping groklaw might pay some attention to it (if such hearings are even public - I don't have much clue about the US judicial system, but it seems unlikely).

    --
    Every expression is true, for a given value of 'true'
    1. Re:This story is going from 'weird' to 'surreal' by Fnkmaster · · Score: 5, Insightful

      Yeah, this was the first I'd read that his best friend has admitted to committing several murders in the past, and had been having an affair with his wife too. This has turned from a geek-commits-murder into a *really* crazy love triangle story.

      Sort of complicates the case for the prosecution. Though the missing passenger seat and condition of Reiser's car and his refusal to explain it certainly makes him sound guilty to a juror (or anyone else).

      After reading this article I did understand a bit better how a man could be driven to do something... drastic. If your wife started doing drugs with and fucking your tattoed, bi-sexual, BDSM-obsessed best friend, and then dumped you for him, and was exposing your children to that (at least until the judge forced her not to), well, I could see that pushing a guy who wasn't fully mentally grounded in the first place over the edge.

    2. Re:This story is going from 'weird' to 'surreal' by Volanin · · Score: 5, Informative
      The last paragraph of the article references a piece of comentary in the Reiser4 code.
      For the geeks out there, here is it, edited to pass slashdot's "few-characters-per-line" filter:

      /* EVERY ZNODE'S STORY

      1. His infancy.

      Once upon a time, the znode was born deep inside of zget() by call to zalloc(). At the return from zget() znode had:

      . reference counter (x_count) of 1
      . assigned block number, marked as used in bitmap
      . pointer to parent znode. Root znode parent pointer points to its father: "fake" znode. This, in turn, has NULL parent pointer.
      . hash table linkage
      . no data loaded from disk
      . no node plugin
      . no sibling linkage

      2. His childhood

      Each node is either brought into memory as a result of tree traversal, or created afresh, creation of the root being a special case of the latter. In either case it's inserted into sibling list. This will typically require some ancillary tree traversing, but ultimately both sibling pointers will exist and JNODE_LEFT_CONNECTED and JNODE_RIGHT_CONNECTED will be true in zjnode.state.

      3. His youth.

      If znode is bound to already existing node in a tree, its content is read from the disk by call to zload(). At that moment, JNODE_LOADED bit is set in zjnode.state and zdata() function starts to return non null for this znode. zload() further calls zparse() that determines which node layout this node is rendered in, and sets ->nplug on success.

      If znode is for new node just created, memory for it is allocated and zinit_new() function is called to initialise data, according to selected node layout.

      4. His maturity.

      After this point, znode lingers in memory for some time. Threads can acquire references to znode either by blocknr through call to zget(), or by following a pointer to unallocated znode from internal item. Each time reference to znode is obtained, x_count is increased. Thread can read/write lock znode. Znode data can be loaded through calls to zload(), d_count will be increased appropriately. If all references to znode are released (x_count drops to 0), znode is not recycled immediately. Rather, it is still cached in the hash table in the hope that it will be accessed shortly.

      There are two ways in which znode existence can be terminated:

      . sudden death: node bound to this znode is removed from the tree
      . overpopulation: znode is purged out of memory due to memory pressure

      5. His death.

      Death is complex process.

      When we irrevocably commit ourselves to decision to remove node from the tree, JNODE_HEARD_BANSHEE bit is set in zjnode.state of corresponding znode. This is done either in ->kill_hook() of internal item or in kill_root() function when tree root is removed.

      At this moment znode still has:

      . locks held on it, necessary write ones
      . references to it
      . disk block assigned to it
      . data loaded from the disk
      . pending requests for lock

      But once JNODE_HEARD_BANSHEE bit set, last call to unlock_znode() does node deletion. Node deletion includes two phases. First all ways to get references to that znode (sibling and parent links and hash lookup using block number stored in parent node) should be deleted -- it is done through sibling_list_remove(), also we assume that nobody uses down link from parent node due to its nonexistence or proper parent node locking and nobody uses parent pointers from children due to absence of them. Second we invalidate all pending lock requests which still are on znode's lock request queue, this is done by invalidate_lock(). Another JNODE_IS_DYING znode status bit is used to invalidate pending lock requests. Once it set all requesters are forced to return -EINVAL from longterm_lock_znode(). F

      --
      If I clone myself, can I call it a thread?
      If a girl winks to us, can I call it a race condition?
  7. Re:I tend to ... by 0123456 · · Score: 5, Insightful

    "The onus is on Reiser to come up with evidence - where is the chair? explain the blood, why was the car washed?"

    Hint: there's this concept we have called 'innocent until proven guilty'.

    I couldn't be arsed to read more than a couple of pages of the article with its silly format, but what's so surprising about finding traces of your SO's blood, or in washing your car?

    Maybe he is guilty, I have no idea; but it's up to the police to prove that he is, not for him to prove that he's innocent.

  8. Re:First question by timster · · Score: 5, Insightful

    Nonsense. It shows that the interviewer cared about the guy's work and accomplishments, not just his alleged crimes. For someone who has been sitting in prison, going to court hearings and meetings with lawyers and talking about nothing else, it was probably nice to talk filesystems for a change. I imagine the interviewer was the first person he'd seen in months who knew what a filesystem even was.

    --
    I have seen the future, and it is inconvenient.
  9. From what I've read... by CastrTroy · · Score: 5, Interesting

    From what I've read, he doesn't come off as very innocent. I read the article in the paper magazine last weekend, and he just seems like a really weird guy. Despite the fact that they picked this interviewer because they thought he would understand Reiser, because he is a misunderstood geek, he still came off as quite a weird guy. The whole part about playing battlefield vietnam with his 6 year old so he could "become a man" was just kind of weird, and really made me question his values. Not that I'm against kids playing violent games, but his whole reasoning behind it was just kind of creepy.

    --

    Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
  10. Re:It's possible to tell when someone's lying by MoralHazard · · Score: 5, Insightful

    There are two problems with machine-assisted lie detection: People who train to control their responses on a polygraph, and people who believe what they say, even though it isn't true. The brain activity monitoring method only attacks the first problem, not the second.

    Part of this is a philosophical problem: Someone with a false grip on reality (to a greater or lesser extent, all of us have some false perceptions or memories) may make a factual statement that is not consistent with objective reality, but if that person *believes* in the truth of the statement, should we even consider them to be lying? I think that the common definition of lying implies intent--you have to know that what you're saying is false. Otherwise, you're merely wrong or delusional.

    It doesn't take a complete nutter to believe in false things, either. Most people believe they are more attractive, more competent, and smarter than the rest of us would rate them. A fair number of people have body image or confidence issues that cause them to vastly underestimate their charms. Sometimes, people just ignore the unpleasant realities of life by not thinking about them. Even better examples come up in looking at objective assessments of eyewitness identification in criminal cases--people can fool themselves into believing all sorts of things.

    I mean, just look at the two different stories that Reiser's son told regarding the last argument between his mother and father: He had to have been making false statements in one of the two interviews, since they contain mutually contradictory statements of fact. But did he believe in the truth of what he said at the time? If you don't think this is possible, try to imagine the terrific psychological pressures on the boy's head over the last few years.

    Hence the problem with using brain activity as an indicator of truth: It can only tell you about the subjective truth of a person's statements, not the objective truth. There's a great potential for difference between the two.

  11. Always with the false dichotomy by Anonymous Coward · · Score: 5, Funny

    Only if you believe it's better to send innocent people to jail than let guilty people go free.

    Why can't we do both?

    I don't know. Maybe I'm just an idealist dreamer.

  12. Re:Wow that's bizzarre by Anonymous Coward · · Score: 5, Informative

    open last dir/patch at ftp://ftp.namesys.com/pub/reiser4-for-2.6
    file znode.c, item 5:

    diff -puN /dev/null fs/reiser4/znode.c
    --- /dev/null Thu Apr 11 07:25:15 2002
    +++ 25-akpm/fs/reiser4/znode.c Wed Mar 30 14:55:08 2005
    @@ -0,0 +1,1141 @@ /* Copyright 2001, 2002, 2003 by Hans Reiser, licensing governed by
    * reiser4/README */ /* Znode manipulation functions. */ /* Znode is the in-memory header for a tree node. It is stored
    separately from the node itself so that it does not get written to
    disk. In this respect znode is like buffer head or page head. We
    also use znodes for additional reiser4 specific purposes:

    . they are organized into tree structure which is a part of whole
    reiser4 tree.
    . they are used to implement node grained locking
    . they are used to keep additional state associated with a
    node
    . they contain links to lists used by the transaction manager

    Znode is attached to some variable "block number" which is instance of
    fs/reiser4/tree.h:reiser4_block_nr type. Znode can exist without
    appropriate node being actually loaded in memory. Existence of znode itself
    is regulated by reference count (->x_count) in it. Each time thread
    acquires reference to znode through call to zget(), ->x_count is
    incremented and decremented on call to zput(). Data (content of node) are
    brought in memory through call to zload(), which also increments ->d_count
    reference counter. zload can block waiting on IO. Call to zrelse()
    decreases this counter. Also, ->c_count keeps track of number of child
    znodes and prevents parent znode from being recycled until all of its
    children are. ->c_count is decremented whenever child goes out of existence
    (being actually recycled in zdestroy()) which can be some time after last
    reference to this child dies if we support some form of LRU cache for
    znodes.

    */ /* EVERY ZNODE'S STORY

    1. His infancy.

    Once upon a time, the znode was born deep inside of zget() by call to
    zalloc(). At the return from zget() znode had:

    . reference counter (x_count) of 1
    . assigned block number, marked as used in bitmap
    . pointer to parent znode. Root znode parent pointer points
    to its father: "fake" znode. This, in turn, has NULL parent pointer.
    . hash table linkage
    . no data loaded from disk
    . no node plugin
    . no sibling linkage

    2. His childhood

    Each node is either brought into memory as a result of tree traversal, or
    created afresh, creation of the root being a special case of the latter. In
    either case it's inserted into sibling list. This will typically require
    some ancillary tree traversing, but ultimately both sibling pointers will
    exist and JNODE_LEFT_CONNECTED and JNODE_RIGHT_CONNECTED will be true in
    zjnode.state.

  13. Sensationalist nonsense by novus+ordo · · Score: 5, Informative
    I found the piece was terribly distraught especially this:

    While he launches into the intricacies of database science, I'm thinking, "Where is the front passenger seat of your car?" He has never explained this. It seems a fundamental hole in his defense. But he won't stop talking. When I try to interrupt, he insists I let him finish. It's as if the file system holds all the answers.

    So I take the hint, and that night, in my office, I start scouring the 80,496 lines of the Reiser4 source code. Eventually I stumble across a passage that starts at line 78,077. It's not part of the program itself it's an annotation, a piece of non-executable text in plain English. It's there for the benefit of someone who has chosen to read this far into the code. The passage explains how memory structures are born, grow, and eventually die. It concludes: "Death is a complex process."

    So I guess this is a confession now? I'm sorry but that's just deceiving and wrong. He calls a patch against the kernel tree a "program" and all the pluses he didn't remove before the code reaffirm this suspicion that he doesn't even know what proper code looks like. He makes it sound as if this comment describing how a specific file structure of the file system works as some sort of "secret confession" hidden there for the unscrupulous researcher. Joshua Davis, please turn in your geek badge!

    With someone that calls himself a geek to come with such a preposterous conclusion leaves me little room for hope that any sort of truth of this case from either side will come out or that any real justice will be done. It speaks volumes of the "blindness of justice" and how our prisons end up being jammed with people placed on death row with DNA evidence later exonerating them and having no recourse to repair their life or credibility. So truly, Death really is a Complex Process.


    Here is the actual passage he was talking about:

    +/* EVERY ZNODE'S STORY
    +
    + 1. His infancy.
    +
    + Once upon a time, the znode was born deep inside of zget() by call to
    + zalloc(). At the return from zget() znode had:
    +
    + . reference counter (x_count) of 1
    + . assigned block number, marked as used in bitmap
    + . pointer to parent znode. Root znode parent pointer points
    + to its father: "fake" znode. This, in turn, has NULL parent pointer.
    + . hash table linkage
    + . no data loaded from disk
    + . no node plugin
    + . no sibling linkage
    +
    + 2. His childhood
    +
    + Each node is either brought into memory as a result of tree traversal, or
    + created afresh, creation of the root being a special case of the latter. In
    + either case it's inserted into sibling list. This will typically require
    + some ancillary tree traversing, but ultimately both sibling pointers will
    + exist and JNODE_LEFT_CONNECTED and JNODE_RIGHT_CONNECTED will be true in
    + zjnode.state.
    +
    + 3. His youth.
    +
    + If znode is bound to already existing node in a tree, its content is read
    + from the disk by call to zload(). At that moment, JNODE_LOADED bit is set
    + in zjnode.state and zdata() function starts to return non null for this
    + znode. zload() further calls zparse() that determines which node layout
    + this node is rendered in, and sets ->nplug on success.
    +
    + If znode is for new node just created, memory for it is allocated and
    + zinit_new() function is called to initialise data, according to selected
    + node layout.
    +
    + 4. His maturity.
    +
    + After this point, znode lingers in memory for some time. Threads can
    + acquire references to znode either by blocknr through call to zget(), or by
    + following a pointer to unallocated znode from internal item. Each time
    + reference to znode is obtained, x_count is increased. Thread can read/write
    + lock znode. Znode data can be loaded through calls to zload(), d_count will
    + be increased appropriately. If all references to znode are released
    + (x_count drops to 0), znode is n

    --
    "You're everywhere. You're omnivorous."
  14. Re:So what about Sean Sturgeon by Slashdot+Parent · · Score: 5, Insightful

    Nina is not dead. Either she's hiding, or she's lost somewhere, or possibly has lost her memory. I presume she loves her kids to much to put them through this ordeal, so I consider this hypothesis unlikely.
    Well, Nina is a Russian mail-order bride. According to the article, Nina and Hans conceived a child their first night together. Really roped Hans in pretty quick, no?

    The kids are currently known to be in Russia, and the Russian mom is conveniently nowhere to be found.

    I'm ....well... just saying....
    --
    They don't grade fathers, but if your daughter's a stripper, you fucked up. --Chris Rock
  15. Re:He *may* have done it by StressGuy · · Score: 5, Funny

    Don't take this one for granted, I haven't practiced enough of this psychic stuff to be sure about this.

    'preciate the heads-up

    --
    A goal is a dream with a deadline