BP3: Put(Sync) triggering a Flush will mess up outstanding Spans
Created by: germasch
From looking at the code in BP3Writer.cpp, when preallocating a new Span would trigger a flush because the internal buffer reaches MaxBufferSize, the code will throw an exception as the flush will make it impossible to use outstanding Spans on the app side, as their data has already been written out -- using them after that time would corrupt whatever data is being buffered now.
However, PutSync
can trigger a flush as well, causing the same issue, so I suppose it should also better throw an exception, as that's better than silent corruption.