MySQL 4.0 -> 5.0, unicode

Thursday, 03. 2. 2006  –  Category: all, sw

Things:

  • Loading a ISO-8559-1 encoded dump into a UTF-8 database breaks, fields are truncated at the first non-valid character. Not terribly surprising, but MySQL is silent about the breakage.
  • Content which looks like, and is declared, ISO-8559-1 might actually get rendered by browsers as CP1252 (aka MS-ANSI WINDOWS-1252)
  • The difference between these two are that 8859 doesn’t use 0x7f to 0x9f, but Windows does – for long hyphens, ellipsis etc
  • iconv -f cp1252 -t utf-8IYF

Links:

FreeBSD GEOM mirroring

Friday, 02. 3. 2006  –  Category: all, sw

‘Cos I keep losing it, here‘s a link to mirroring your new FreeBSD install without all the fiddly scripts of the other Google hits :)

More Apache stuckage

Wednesday, 01. 11. 2006  –  Category: all, sw

  • mod_status shows loads of children in Keepalive state with Seconds Since much higher than KeepAliveTimeout
  • eventually the number of these reaches MaxClients, wedging the server
  • hung process backtrace like this:
    
    (gdb)  bt
    #0  0x2814d118 in read () from /usr/lib/libc.so.4
    #1  0x2830e69f in ssl_io_hook_read () from /usr/local/libexec/apache/libssl.so
    #2  0x806d256 in ap_hook_call_func ()
    #3  0x806ce7b in ap_hook_call ()
    #4  0x8051bea in ap_read ()

There’s some google-able posts about SSL blocking reads, but

  • They’re old posts
  • The hung threads aren’t actually on a SSL VirtualHost

Since it’s a busy server there’s this tradeoff between KeepAlives helping by reducing HTTP connection setup / teardown and the need to churn Apache children fast. Since I didn’t have any joy working out the problem, I’ve got around it by just turning KeepAlives off.

Still, it bugs me.