Menu

#14 Indexer still crashes.

v0.9
open
Core (12)
8
2012-10-15
2007-12-07
Anonymous
No

Hi,

Indexer still crashes after a while in RC3 release. This time it takes a longer time for it to freeze and before getting crashed, it indexes lots of conversations.
I have a suggestion...Isn't it possible for you to set the indexer to restart automatically when it crashes? That is, making it to skip the conversation in which it crashed and continue indexing other conversations. It can all add all the problematic conversations in a list, so that we can look for the similarities in these conversations to find out what in them causes the indexer to crash.

Discussion

  • Pravin Paratey

    Pravin Paratey - 2007-12-09

    Logged In: YES
    user_id=1093741
    Originator: NO

    Looking into it. Increasing priority.

     
  • Nobody/Anonymous

    Logged In: NO

    1. A crash source is in the following block of code in Yammy.Decoder.Decode() method:

    // Check if we have a big enough buffer
    if (dataLength > buffer.Length)
    {
    buffer = new byte[dataLength];
    }

    buffer = br.ReadBytes(dataLength);

    // Decode
    int pointer = 0;
    for (int i = 0; i < dataLength; i++)
    {
    ..........
    }

    Explanation:

    The buffer allocation is useless since the method BinaryReader.ReadBytes(dataLength) reallocates it internally. Then if the read bytes count is smaller than the dataLength
    it's obvious that any attempt to loop outside the buffer's limits will induce a crash.

    Also is no need to initialize the buffer variable to a block of 512 bytes, because will be reallocated anyway.

    1. Another cause is the fact that the EndOfStreamException is not handled in the same Yammy.Decoder.Decode() method.
     
  • Nobody/Anonymous

    Logged In: NO

    Revision 65 (and above) in svn should (hopefully) fix this.

     

Log in to post a comment.