[rt-devel] Spot the difference (attachment corruption)

Ruslan U. Zakirov cubic at acronis.ru
Tue Oct 28 10:47:49 EST 2003


Iain Price wrote:
> Ruslan U. Zakirov wrote:
> 
>> Iain Price wrote:
>>
>>> This one is good, i hope someone has experience and can just say 'oh 
>>> yeah do this' :)
>>>
>>> Having deployed rt3.0.5 i was unhappy to find my users couldn't do 
>>> attachments properly without corruption - especially as i had spent 
>>> so long testing it on my dev box.  Anyway after several days of 
>>> chasing dead ends i found out two things
>>> 1) my 'dev' box isn't the same as my live box for some reason, the 
>>> dev box which works properly is running RH 8 while the live box is 
>>> running RH 9 (and smashes up attachments)
>>> 2) the corruption consists of escaping top bit set chars (see below)
>>> additionally to note
>>> 3) both boxes are running the same copy of apache 1.3 manually compiled
>>> 4) both boxes are running the same copy of mod_perl 1.26 manually 
>>> compiled
>>> 5) same rt too, and both pass the rt-testdependancies --with-mysql 
>>> --with-modperl1 the same way - except
>>> 6) Digest::MD5 on both boxes is out of date according to testdeps.  I 
>>> doubt this is the issue here, but the newer versions (the one 
>>> requested in testdeps and later ones) produce junk for a Makefile 
>>> when i do the usual perl Makefile.PL - maybe i did something wrong 
>>> but the Makefile has serious syntax errors, invalid labels, 
>>> unterminated strings, missing values for attributes, something very 
>>> wierd here - and on both RH8 and RH9 box :P
>>
>>
>> You have UTF locale :( It's an FAQ for RH and Perl 5.8.0
>> This break Digest::MD5 installation and many other things. So you have 
>> to absolutly change your locale settings to 'C' or something else that 
>> don't contain utf substring.
> 
> 
> Doh, thanks, export LANG=C did the job fine for Digest::MD5 installation
> 
>> I don't know does it fix attachment corruptions or not, but it fix 
>> another random(look like random) problems.
>>
>> Also I think that locale change will also fix problem for you with 
>> attachments or may be not. Check.
>>
>> Jesse, please add check for locale settings under 5.8.0 with 
>> warning(or better stop installation until user change it).
> 
> 
> 
> Ok, this is the live box i cant touch this until this evening ... but 
> i'm not hopeful.  The Digest::MD5 wouldn't compile on either my dev or 
> live box, (dev=rh8, live=rh9), the LANG=C worked for the compilation on 
> both boxes, however the attachment error is only on the live RH9 box 
> (i.e. is specific to rh9 whereas the LANG=C applies to both rh8 and 
> rh9).... I guess more stuff on RH9 could be affected by the lang 
> setting, but i would be expecting a change that only needs to occur on 
> one host hehe :)
> 
> Anyway, i have my fingers crossed, if this does actally nail it, i think 
> we'll have everything here deployed and working as they (my managers) 
> want it :D
> 
> Let you know later, thanks for your help once again :)
> 
> Iain
> 
Also I thought about MySQL or DBD::mysql.
Just dump your mysql variables: show variables; in mysql console and 
compare it on different distros.

I have ~ next ideas:
1) if locale =~ /utf/i; than perl for all outputs force binmode and 
:encoding utf8
2) when DBD sends binary data(fills blobs) to mysql it uses handles so 
perl convert data to utf enc.
I think that it is possible.

But this don't explain RH8 and RH9 different behavior. So may be RH in 9 
  ver changed some mysql build time options and mysql do some 
autoescaping. I really don't know. I don't have such issue with RH9 
based distro.
			Good luck. Ruslan.




More information about the Rt-devel mailing list