Percona Server with XtraDB

Lots of ssl tests failures on oneiric hosts

Reported by Alexey Kopytov on 2011-12-10
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
MySQL Server
Unknown
Unknown
Percona Server
High
Sergei Glushchenko
5.1
High
Laurynas Biveinis
5.5
High
Sergei Glushchenko

Bug Description

There are many SSL-related failing tests on Ubuntu OneiricOcelot hosts in Jenkins. The reason seems to be the same (a crash in yassl), so I'm reporting them all in one bug. List of failing tests:

rpl.rpl_ssl 'mix'
rpl.rpl_ssl1 'mix'
rpl.rpl_ssl 'row'
rpl.rpl_ssl1 'row'
rpl.rpl_ssl 'stmt'
rpl.rpl_ssl1 'stmt'
main.func_encrypt
main.ssl_8k_key
main.ssl_cipher
main.func_des_encrypt
main.func_encrypt_ucs2
main.openssl_1
main.ssl
main.ssl_compress
main.ssl_connect

Changed in percona-server:
status: New → Confirmed
Changed in percona-server:
assignee: nobody → Sergei Glushchenko (sergei.glushchenko)

The reason is that gcc 4.6 turns -fomit-frame-pointer when -O2 specified. -fno-omit-frame-pointer will fix the issue.

Stewart Smith (stewart) on 2012-06-15
Changed in percona-server:
importance: Undecided → High
status: Confirmed → Triaged

5.5 was fixed upstream at some point. Backporting the fix to 5.1

Fixing the stack direction issue did not fix the SSL failures, but they did fix a bunch of other failures, see bug 902472.

Sergei's original analysis is correct. This is what I commented on the upstream bug:

The problem here does not seem to be the stack direction issue (although it might pile up additional issues on the top), but rather the IMHO broken inline assemly in taocrypt arc4.cpp: (only interesting parts)

__attribute__ ((noinline))
void ARC4::AsmProcess(byte* out, const byte* in, word32 length)
{
    AS2( mov [esp], ebp ) // length
}

This assumes a certain calling convention and does not expose it to the compiler (attribute((noinline)) might be a poor attempt at that). The compiler cannot even tell if the args are used there. The proper way to write this function is to use the GCC extended asm syntax to pass the args the to the inline asm. I'm testing a workaround of adding -fno-omit-frame-pointer to taocrypt/src/Makefile.am, this might buy some time before the next compiler version breaks things again.

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

Other bug subscribers

Remote bug watches

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