From 8b18502cd09cdda524a81c271686f52f7574fa57 Mon Sep 17 00:00:00 2001 From: Mike Dirolf Date: Wed, 4 Mar 2009 13:52:09 -0500 Subject: [PATCH] debug logs and assertions --- lib/mongo/cursor.rb | 15 +++++++++++++-- lib/mongo/message/message_header.rb | 5 ++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/lib/mongo/cursor.rb b/lib/mongo/cursor.rb index 37f2df6..a120a40 100644 --- a/lib/mongo/cursor.rb +++ b/lib/mongo/cursor.rb @@ -18,6 +18,9 @@ require 'mongo/message' require 'mongo/util/byte_buffer' require 'mongo/util/bson' +require 'logger' +LOG = Logger.new('recv_file.log', 'daily') + module XGen module Mongo module Driver @@ -165,7 +168,10 @@ module XGen def read_response_header header_buf = ByteBuffer.new - header_buf.put_array(@db.socket.recv(RESPONSE_HEADER_SIZE).unpack("C*")) + read = @db.socket.recv(RESPONSE_HEADER_SIZE) + header_buf.put_array(read.unpack("C*")) + LOG.debug "resp head: #{read.inspect}\n" + raise "BAD SIZE" unless read.length == RESPONSE_HEADER_SIZE raise "Short read for DB response header; expected #{RESPONSE_HEADER_SIZE} bytes, saw #{header_buf.length}" unless header_buf.length == RESPONSE_HEADER_SIZE header_buf.rewind @result_flags = header_buf.get_int @@ -201,12 +207,17 @@ module XGen def object_from_stream buf = ByteBuffer.new read = @db.socket.recv(4) + LOG.debug "size: #{read.inspect}\n" + raise "BAD SIZE" unless read.length == 4 buf.put_array(read.unpack("C*")) buf.rewind size = buf.get_int # TODO debugging here for a bit begin - buf.put_array(@db.socket.recv(size-4).unpack("C*"), 4) + blah = @db.socket.recv(size-4) + buf.put_array(blah.unpack("C*"), 4) + LOG.debug "body: #{blah.inspect}\n" + raise "BAD SIZE" unless blah.length == size-4 rescue => ex raise "#{ex.class}: #{ex.message} ***size was #{size}*size string was #{read.inspect}*res_flags #{@result_flags}*cursor_id #{@cursor_id}*starting_from #{@starting_from}*n_returned #{@n_returned}***" end diff --git a/lib/mongo/message/message_header.rb b/lib/mongo/message/message_header.rb index 31a59a1..8696c0b 100644 --- a/lib/mongo/message/message_header.rb +++ b/lib/mongo/message/message_header.rb @@ -30,7 +30,10 @@ module XGen def read_header(socket) @buf.rewind - @buf.put_array(socket.recv(HEADER_SIZE).unpack("C*")) + read = socket.recv(HEADER_SIZE) + @buf.put_array(read.unpack("C*")) + LOG.debug "header: #{read.inspect}\n" + raise "BAD SIZE" unless read.length == HEADER_SIZE raise "Short read for DB response header: expected #{HEADER_SIZE} bytes, saw #{@buf.size}" unless @buf.size == HEADER_SIZE @buf.rewind @size = @buf.get_int