Valgrind warning in transaction log protobuf

Bug #629360 reported by Andrew Hutchings
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Drizzle
Fix Released
Medium
David Shrewsbury
7.0
Fix Released
Medium
David Shrewsbury

Bug Description

During transactinon_log tests:

==3653== Thread 16:
==3653== Conditional jump or move depends on uninitialised value(s)
==3653== at 0x4E8EAF3: google::protobuf::io::CodedOutputStream::VarintSize32(unsigned int) (coded_stream.h:732)
==3653== by 0x4E839AA: drizzled::message::DeleteData::ByteSize() const (wire_format_lite_inl.h:610)
==3653== by 0x4E840F8: drizzled::message::Statement::ByteSize() const (wire_format_lite_inl.h:649)
==3653== by 0x68C498: drizzled::TransactionServices::getDeleteStatement(drizzled::Session*, drizzled::Table*, unsigned int*) (transaction_services.cc:1494)
==3653== by 0x68C762: drizzled::TransactionServices::deleteRecord(drizzled::Session*, drizzled::Table*, bool) (transaction_services.cc:1604)
==3653== by 0x507791: drizzled::log_row_for_replication(drizzled::Table*, unsigned char const*, unsigned char const*) (cursor.cc:1384)
==3653== by 0x507B46: drizzled::Cursor::deleteRecord(unsigned char const*) (cursor.cc:1591)
==3653== by 0x6182D0: drizzled::mysql_delete(drizzled::Session*, drizzled::TableList*, drizzled::Item*, drizzled::st_sql_list*, unsigned long, unsigned long, bool) (sql_delete.cc:249)
==3653== by 0x661505: drizzled::statement::Delete::execute() (delete.cc:51)
==3653== by 0x6282F2: drizzled::mysql_execute_command(drizzled::Session*) (sql_parse.cc:479)
==3653== by 0x628502: drizzled::mysql_parse(drizzled::Session*, char const*, unsigned int) (sql_parse.cc:750)
==3653== by 0x62A2B1: drizzled::dispatch_command(drizzled::enum_server_command, drizzled::Session*, char*, unsigned int) (sql_parse.cc:224)
==3653== by 0x5F7F69: drizzled::Session::executeStatement() (session.cc:666)
==3653== by 0x5FA281: drizzled::Session::run() (session.cc:522)
==3653== by 0xAA2C843: session_thread (multi_thread.h:67)
==3653== by 0x6A49A03: start_thread (pthread_create.c:300)
==3653==
==3653== Conditional jump or move depends on uninitialised value(s)
==3653== at 0x4E8EAF3: google::protobuf::io::CodedOutputStream::VarintSize32(unsigned int) (coded_stream.h:732)
==3653== by 0x4E839AA: drizzled::message::DeleteData::ByteSize() const (wire_format_lite_inl.h:610)
==3653== by 0x4E840F8: drizzled::message::Statement::ByteSize() const (wire_format_lite_inl.h:649)
==3653== by 0x4E84554: drizzled::message::Transaction::ByteSize() const (wire_format_lite_inl.h:649)
==3653== by 0xC300CF9: TransactionLog::getLogEntrySize(drizzled::message::Transaction const&) (transaction_log.cc:321)
==3653== by 0xC301962: TransactionLogApplier::apply(drizzled::Session&, drizzled::message::Transaction const&) (transaction_log_applier.cc:101)
==3653== by 0x5F53AC: drizzled::ReplicationServices::pushTransactionMessage(drizzled::Session&, drizzled::message::Transaction&) (replication_services.cc:179)
==3653== by 0x68901B: drizzled::TransactionServices::commitTransactionMessage(drizzled::Session*) (transaction_services.cc:971)
==3653== by 0x689D1A: drizzled::TransactionServices::autocommitOrRollback(drizzled::Session*, int) (transaction_services.cc:517)
==3653== by 0x629EF4: drizzled::dispatch_command(drizzled::enum_server_command, drizzled::Session*, char*, unsigned int) (sql_parse.cc:257)
==3653== by 0x5F7F69: drizzled::Session::executeStatement() (session.cc:666)
==3653== by 0x5FA281: drizzled::Session::run() (session.cc:522)
==3653== by 0xAA2C843: session_thread (multi_thread.h:67)
==3653== by 0x6A49A03: start_thread (pthread_create.c:300)
==3653== by 0x6D3E80C: clone (clone.S:112)
==3653==
==3653== Conditional jump or move depends on uninitialised value(s)
==3653== at 0x4E8359D: drizzled::message::DeleteData::SerializeWithCachedSizesToArray(unsigned char*) const (coded_stream.h:653)
==3653== by 0x4E84AFE: drizzled::message::Statement::SerializeWithCachedSizesToArray(unsigned char*) const (wire_format_lite_inl.h:598)
==3653== by 0x4E850AE: drizzled::message::Transaction::SerializeWithCachedSizesToArray(unsigned char*) const (wire_format_lite_inl.h:598)
==3653== by 0xC300F7F: TransactionLog::packTransactionIntoLogEntry(drizzled::message::Transaction const&, unsigned char*, unsigned int*) (transaction_log.cc:163)
==3653== by 0xC30199E: TransactionLogApplier::apply(drizzled::Session&, drizzled::message::Transaction const&) (transaction_log_applier.cc:111)
==3653== by 0x5F53AC: drizzled::ReplicationServices::pushTransactionMessage(drizzled::Session&, drizzled::message::Transaction&) (replication_services.cc:179)
==3653== by 0x68901B: drizzled::TransactionServices::commitTransactionMessage(drizzled::Session*) (transaction_services.cc:971)
==3653== by 0x689D1A: drizzled::TransactionServices::autocommitOrRollback(drizzled::Session*, int) (transaction_services.cc:517)
==3653== by 0x629EF4: drizzled::dispatch_command(drizzled::enum_server_command, drizzled::Session*, char*, unsigned int) (sql_parse.cc:257)
==3653== by 0x5F7F69: drizzled::Session::executeStatement() (session.cc:666)
==3653== by 0x5FA281: drizzled::Session::run() (session.cc:522)
==3653== by 0xAA2C843: session_thread (multi_thread.h:67)
==3653== by 0x6A49A03: start_thread (pthread_create.c:300)
==3653== by 0x6D3E80C: clone (clone.S:112)
==3653==
==3653== Syscall param pwrite64(buf) points to uninitialised byte(s)
==3653== at 0x6A51B08: ??? (in /lib/libpthread-2.10.1.so)
==3653== by 0xC300DFA: TransactionLog::writeEntry(unsigned char const*, unsigned long) (transaction_log.cc:206)
==3653== by 0xC3019AD: TransactionLogApplier::apply(drizzled::Session&, drizzled::message::Transaction const&) (transaction_log_applier.cc:113)
==3653== by 0x5F53AC: drizzled::ReplicationServices::pushTransactionMessage(drizzled::Session&, drizzled::message::Transaction&) (replication_services.cc:179)
==3653== by 0x68901B: drizzled::TransactionServices::commitTransactionMessage(drizzled::Session*) (transaction_services.cc:971)
==3653== by 0x689D1A: drizzled::TransactionServices::autocommitOrRollback(drizzled::Session*, int) (transaction_services.cc:517)
==3653== by 0x629EF4: drizzled::dispatch_command(drizzled::enum_server_command, drizzled::Session*, char*, unsigned int) (sql_parse.cc:257)
==3653== by 0x5F7F69: drizzled::Session::executeStatement() (session.cc:666)
==3653== by 0x5FA281: drizzled::Session::run() (session.cc:522)
==3653== by 0xAA2C843: session_thread (multi_thread.h:67)
==3653== by 0x6A49A03: start_thread (pthread_create.c:300)
==3653== by 0x6D3E80C: clone (clone.S:112)
==3653== Address 0x17ee21bf is 79 bytes inside a block of size 1,024 alloc'd
==3653== at 0x4C2596C: operator new(unsigned long) (vg_replace_malloc.c:220)
==3653== by 0xC306111: WriteBuffer::WriteBuffer() (new_allocator.h:89)
==3653== by 0xC301ED6: TransactionLogApplier::TransactionLogApplier(std::string, TransactionLog*, TransactionLogIndex*, unsigned int) (transaction_log_applier.cc:78)
==3653== by 0xC2FA330: init(drizzled::module::Context&) (module.cc:222)
==3653== by 0x5B81DD: drizzled::plugin_finalize(drizzled::module::Registry&) (loader.cc:347)
==3653== by 0x51575F: drizzled::init_server_components(drizzled::module::Registry&) (drizzled.cc:895)
==3653== by 0x502363: main (main.cc:262)
==3653==

Related branches

Revision history for this message
Andrew Hutchings (linuxjedi) wrote :

At first it was thought that this was introduced in r1736 (ie. my fault) as that is when it started appearing on the Drizzle-benchmark list. But I have since been able to reproduce with older revisions.

summary: - Valgrind warning introduced in r1736
+ Valgrind warning in transaction log protobuf
Revision history for this message
David Shrewsbury (dshrews) wrote :

Looks like it might be related to some of my earlier changes.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.