[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