Bug #58941 First character cut off in error message
Submitted: 15 Dec 2010 13:07 Modified: 16 Mar 2011 13:56
Reporter: Geert Vanderkelen Email Updates:
Status: Patch queued Impact on me:
None 
Category:MySQL Proxy: Core Severity:S3 (Non-critical)
Version:1.0 OS:Any
Assigned to: Jan Kneschke CPU Architecture:Any

[15 Dec 2010 13:07] Geert Vanderkelen
Description:
Using MySQL Cluster Manager 1.1.0, I misconfigured the log-file configuration as a directory (should be file). The MySQL Proxy gave a critical error, but the first letter of the error message is getting lost:

2010-12-15 13:26:12: (critical) an't open log-file '/opt/data/mcm': Is a directory

How to repeat:
Configure the log-file option to be a directory using MCM 1.1.0.
[15 Dec 2010 14:59] Jan Kneschke
Can't reproduce this with MySQL Proxy 0.8.1:

$ mysql-proxy --log-file=/tmp/
2010-12-15 15:46:48: (critical) can't open log-file '/tmp/': Is a directory

What chassis version is MCM using ?
[16 Mar 2011 13:54] Jan Kneschke
Problem and reproducability depends on the way the chassis is built.

1) gcc passes __FILE__ the name it gets from -c ... which is without any path-prefix if srcdir==builddir. 

2) If the builddir differs from the srcdir the -c <filename> will be something like '../trunk/src/chassis.c'.

3) If the cmake build-system is used or of the win32 build is done with /FC or /Zi CFLAGS the filename will always be absolute.

The bug on our side is, that we tried to handle 3) without checking that it isn't any of the other cases.
[16 Mar 2011 13:56] Jan Kneschke
pushed to the 0.8 branch

revno: 1149
committer: jan@mysql.com
branch nick: rel-0.8
timestamp: Wed 2011-03-16 11:03:03 +0100
message:
  reverted the last revision and only try to strip prefixes if __FILE__ is absolute
------------------------------------------------------------
revno: 1148
committer: jan@mysql.com
branch nick: rel-0.8
timestamp: Tue 2011-03-15 15:41:03 +0100
message:
  updated the assertion to handle cmake + win32 properly
------------------------------------------------------------
revno: 1147
committer: jan@mysql.com
branch nick: rel-0.8
timestamp: Tue 2011-03-15 15:27:46 +0100
message:
  link against the build libmysql-chassis.la
  
    * fixed test-failure on srcdir==builddir builds as that condition wasn't 
      detected in the test-case properly as __FILE__ in the testcase was 
      ../../src/chassis-log.c pretending it would be a srcdir!=builddir build
        linking against the already built libmysql-chassis.la fixes it
------------------------------------------------------------
revno: 1146
committer: jan@mysql.com
branch nick: rel-0.8
timestamp: Tue 2011-03-15 15:14:03 +0100
message:
  refactored the "gstrloc has filename only" check into its own function
  
    * removed duplication of the same code in the unit-tests
    * handle current-dir prefixes like './' and '.\'
------------------------------------------------------------
revno: 1145
fixes bug(s): http://bugs.mysql.com/58941
committer: jan@mysql.com
branch nick: rel-0.8
timestamp: Mon 2011-03-14 19:53:07 +0100
message:
  don't strip filenames from log messages if __FILE__ doesn't include a directory name (fixes #58941)