Lots of ssl tests failures on oneiric hosts

Bug #902471 reported by Alexey Kopytov
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
MySQL Server
Unknown
Unknown
Percona Server moved to https://jira.percona.com/projects/PS
Invalid
High
Sergei Glushchenko
5.1
Fix Released
High
Laurynas Biveinis
5.5
Invalid
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

Related branches

Changed in percona-server:
status: New → Confirmed
Changed in percona-server:
assignee: nobody → Sergei Glushchenko (sergei.glushchenko)
Revision history for this message
Sergei Glushchenko (sergei.glushchenko) wrote :

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)
Changed in percona-server:
importance: Undecided → High
status: Confirmed → Triaged
Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote :
Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote :

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

Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote :

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

Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote :

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.

Revision history for this message
Shahriyar Rzayev (rzayev-sehriyar) wrote :

Percona now uses JIRA for bug reports so this bug report is migrated to: https://jira.percona.com/browse/PS-520

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.