Crash Again


#1

stack like this:
libcouchbase_debug.dll!ringbuffer_ensure_capacity(ringbuffer_st * buffer, unsigned long size) 行 62 C
libcouchbase_debug.dll!lcb_server_buffer_start_packet(lcb_server_st * c, const void * command_cookie, ringbuffer_st * buff, ringbuffer_st * buff_cookie, const void * data, unsigned long size) 行 47 C
libcouchbase_debug.dll!sasl_auth_response_handler(lcb_server_st * server, lcb_command_data_st * command_data, protocol_binary_response_header * res) 行 904 C
libcouchbase_debug.dll!lcb_dispatch_response(lcb_server_st * c, lcb_command_data_st * ct, protocol_binary_response_header * header) 行 1250 C
libcouchbase_debug.dll!lcb_proto_parse_single(lcb_server_st * c, unsigned __int64 stop) 行 215 C
libcouchbase_debug.dll!lcb_server_v1_read_handler(lcb_sockdata_st * sockptr, long nr) 行 165 C
libcouchbase_debug.dll!handle_single_overlapped(iocp_st * io, _OVERLAPPED * lpOverlapped, unsigned long lpCompletionKey, unsigned long dwNumberOfBytesTransferred) 行 109 C
libcouchbase_debug.dll!dequeue_io_impl_ex(iocp_st * io, unsigned long msTimeout) 行 193 C
libcouchbase_debug.dll!iocp_run(lcb_io_opt_st * iobase) 行 276 C
libcouchbase_debug.dll!lcb_wait(lcb_st * instance) 行 77 C
libcouchbase_debug.dll!lcb_synchandler_return(lcb_st * instance, lcb_error_t retcode) 行 276 C
libcouchbase_debug.dll!single_get(lcb_st * instance, const void * command_cookie, const lcb_get_cmd_st * item) 行 299 C
libcouchbase_debug.dll!lcb_get(lcb_st * instance, const void * command_cookie, unsigned long num, const lcb_get_cmd_st * const * items) 行 48 C

firegame_d.exe!DatabaseCache::get(const void * key, int keylen, int & len) 行 149 C++
firegame_d.exe!GameDbOperator::cache_getBeAttacked(DatabaseCache * cache, __int64 uid) 行 1799 C++
firegame_d.exe!GameSession::onRequestCheckBeAttacked(Socket * owner, int threadId, int peerId, Packet & packet) 行 639 C++
firegame_d.exe!GameMainThread::eventReceived(int threadId, int peerId, int msgId, Packet & packet) 行 241 C++
firegame_d.exe!NetManager::processPacket(int threadId) 行 133 C++
firegame_d.exe!workingThreadProxy(void * param) 行 52 C++


#2

could you specify libcouchbase version, your environment and what kind of use case do you have?

and also could you open a bug in our tracking system, because your post does look like a question actually

Thank you


#3

This will be fixed in the next version. Your problem is that in the V1 I/O use case the buffers would not necessarily be available after SASL auth because there may perhaps have been a pending write which did not yet complete (or be flushed via IOCP’s callback). While this is rare it may happen.

As sergey said, please do file an issue in our JIRA