Hello!

Lukas, your fix with not processing a resent <Add> works when the item
fits into one message. I'm not entirely sure why, though. What I see in
the log file is:
[2010-03-06 07:30:58.009] Started processing Command 'Add' (incoming
MsgID=2, CmdID=5)
  * +–[2010-03-06 07:30:58.009] 'processCmd' - Processing incoming
    command, Cmd=Add, IncomingMsgID=2,
    CmdID=5 [--][++] [->end] [->enclosing]
      * [2010-03-06 07:30:58.009] command started processing
      * [2010-03-06 07:30:58.009] Received last chunk for already
        processed item -> just resending status 201
      * [2010-03-06 07:30:58.009] Created command 'Status' (outgoing)

The "already processed" message is not from your recent patch.

Anyway, it fails in one case when the item was split:
     1. client has a new big item
     2. client sends <Add> with <MoreData/>
     3. server buffers the item
     4. client sends second half
     5. server processes the complete item, removes the PIStored blob,
        sends reply
     6. reply never reaches client
     7. client and server suspend
     8. upon resume, client resends the second half
        (<Item><Source><LocURI>2273</LocURI></Source>
        <Meta><EMI>datapos=19241</EMI></Meta><Data>...)
     9. server attempts to parse the item, fails and returns 415

The logs don't tell me what the relevant difference is, so I'll have to
dive into the debugger.

-- 
Best Regards, Patrick Ohly

The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.



_______________________________________________
os-libsynthesis mailing list
os-libsynthesis@synthesis.ch
http://lists.synthesis.ch/mailman/listinfo/os-libsynthesis

Reply via email to