Philip Herron wrote:
Philip Herron wrote:
Hey guys

I just posted the problem i had there on the irc:

23:41 < redbrain> hey guys just wondering getting an error on the latest bzr again: In function ‘ssize_t read(int, void*, size_t)’, inlined from ‘int
main(int, char**)’ at replication_event_reader.cc:156:
23:41 < redbrain> /usr/include/bits/unistd.h:43: error: call to ‘__read_chk_warn’ declared with attribute warning: read called with bigger length than size
of the destination buffer
23:41 < redbrain> i see where the error is
23:41 < redbrain> but i dont understand what its doing
23:41 < redbrain> if (read(file, &length, sizeof(uint64_t)) != sizeof(uint64_t))
23:41 < redbrain> file isnt init nor is length
23:41 < redbrain> :S
23:42 < redbrain> with this read is it trying to read a 64bit int out of a 32 bit int or somthing
23:42 < redbrain> :S
23:42 < redbrain> dont really understand
23:42 < redbrain> hmm
23:43 < redbrain> its just a compiler warning but the makefile treats it as an error


So yeah i got that error and just made this fix: Its probably not the best.. or the way its meant to work but it let me compile :)

=== modified file 'drizzled/serialize/replication_event_reader.cc'
--- drizzled/serialize/replication_event_reader.cc 2009-01-28 04:37:46 +0000 +++ drizzled/serialize/replication_event_reader.cc 2009-02-01 00:00:40 +0000
@@ -149,11 +149,11 @@
while (1)
{
off_t length;
- char *buffer= NULL;
+ char *buffer=(char*)malloc(sizeof(char));
char *temp_buffer;

/* Read the size */
- if (read(file, &length, sizeof(uint64_t)) != sizeof(uint64_t))
+ if (read(file, &length, sizeof(uint32_t)) != sizeof(uint32_t))
break;

temp_buffer= (char *)realloc(buffer, length);

=============

Anyways its probably broken with that but hey i wanted to get some merging done :)

-Phil
http://redbrain.co.uk
Hey guys

yeah just updating all you needed to to was change to:
- if (read(file, &length, sizeof(uint64_t)) != sizeof(uint64_t))
+ if (read(file, &length, sizeof(uint32_t)) != sizeof(uint32_t))

The buffer should have been left NULL.

I guess its because the length is off_t which is just: typedef long off_t
so its still 32bit and therefore too small to read a 64bit int into or something along those lines.

-Phil

http://redbrain.co.uk
Hey

More on this again, i must have broke something, or the latest bzr is broken. Trying to run some tests and get errors:

redbr...@silix ~/workspace/drizzle/drizzle-bug311013/tests $ ./dtr --start-and-exit
Logging: ./dtr --start-and-exit
Changed limits: max_open_files: 1024 max_connections: 886 table_cache: 64InnoDB: The first specified data file ./ibdata1 did not exist:
InnoDB: a new database to be created!
090201  1:12:17  InnoDB: Setting file ./ibdata1 size to 10 MB
InnoDB: Database physically writes the file full: wait...
090201 1:12:17 InnoDB: Log file ./ib_logfile0 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile0 size to 5 MB
InnoDB: Database physically writes the file full: wait...
090201 1:12:17 InnoDB: Log file ./ib_logfile1 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile1 size to 5 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: Creating foreign key constraint system tables
InnoDB: Foreign key constraint system tables created
090201  1:12:18 InnoDB Plugin 1.0.2 started; log sequence number 0
Entering pool shutdown
090201  1:12:18  InnoDB: Starting shutdown...
090201  1:12:19  InnoDB: Shutdown completed; log sequence number 46409
Plugin 'MyISAM' has ref_count=1 after deinitialization.MySQL Version 7.0.0
Using MTR_BUILD_THREAD      = -69.4
Using MASTER_MYPORT         = 9306
Using MASTER_MYPORT1        = 9307
Using SLAVE_MYPORT          = 9308
Using SLAVE_MYPORT1         = 9309
Using SLAVE_MYPORT2         = 9310
Killing Possible Leftover Processes
Removing Stale Files
Creating Directories
=======================================================
DEFAULT STORAGE ENGINE: innodb
TEST                           RESULT         TIME (ms)
-------------------------------------------------------

mysql-test-run: WARNING: Process 3727 died
main.1st                       [ fail ]

ERROR: Failed to start master mysqld 0

Aborting: main.1st failed in default mode.
To continue, re-run with '--force'.
Stopping All Servers
mysql-test-run: WARNING: caught exit of unknown child -1
mysql-test-run: WARNING: Forcing kill of process 3727
=============

If i do:
~/usr/local/drizzle-bug311013/sbin $ ./drizzled
Changed limits: max_open_files: 1024 max_connections: 886 table_cache: 64090201 1:13:34 InnoDB: highest supported file format is Barracuda.
090201  1:13:34 InnoDB Plugin 1.0.2 started; log sequence number 46429
Can't create IP socket: Address family not supported by protocolAborting
Entering pool shutdown
090201  1:13:34  InnoDB: Starting shutdown...
090201  1:13:35  InnoDB: Shutdown completed; log sequence number 46439
Plugin 'InnoDB' has ref_count=1 after deinitialization../drizzled: Shutdown complete

So you notice i get "Can't create IP socket: Address family not supported by protocolAborting"

I got this when i run: ./dtr --start-and-exit --gdb
So yeah not sure if i have done something really bad trying to figure out where to start to debug this.

-Phil

_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to