Saturday, January 21, 2012

KDE 4.8 RC2 on Solaris 11

Finally I found some motivation to debug the broken login to KDE. At first I got distracted by noticing most of plasma applets were crashing and I thought it might be related. I noted some familiar functions when debugging that and the deja-vu feeling started to grow. Indeed, I traced this Studio bug just a few weeks ago and even pushed a workaround to our Qt - but forgot to turn it on!

However that was a red herring, as I was still unable to login.

While I was inside plasma I fixed the remaining broken applet and started doing what I should have done from the beginning - analyzing the problem.

I saw that when the login stopped progressing, there was the kwapper4 process fully occupying one of the cores. The hotuser DTrace script told me it spent all the time inside the getDisplay() function. I then attached dbxtool and saw that it's looping these two lines:

   while((i = strchr(result, ':')))
     *i = '_';
That was weird. I started checking the documentation of strchr to see if there might be some difference between its behavior on Linux and Solaris and found nothing. Then I noticed that the code behaves correctly when I remove all the build options and after a handful of iterations I had the culprit - -xbuiltin=%all ... As the Studio documentation says - "Note that these substitutions can cause the setting of errno to become unreliable. If your program depends on the value of errno, avoid this option." and that's exactly what was happening. 
 
I removed the option from the whole kde-solaris repository, as it's probably only safe to use when one has the code under full control, which is not our case.

Now I'm able to log into KDE again:






Since KDE 4.8 will be released within several hours, I'll wait with publishing the binary packages
for the final release.




2 comments:

  1. As the CNC program is setup, next step is to load all the instructions to the machine. Prior to loading the commands, the workpiece should be loaded on the machine, on to the spindles and other components. We supply innovative CNC machining with single cut envelopes up to as} 84”, household supplies 40”, 36”. HDPE is utilized in extensive variety|all kinds} of applications and industries where glorious impression resistance, high tensile power, low moisture absorption and chemical and corrosion resistance properties are required. We are devoted to offering the quickest CNC machining in the business, with initiatives programmed and began the same day as order. We also utilize CNC Machining as a useful secondary operation for our 3D printed components that require boring, drilling, face milling or other precision machining for enhancing features.

    ReplyDelete