A possible solution to "flash crash"

Under development: PCMCIA, wireless, etc.
Post Reply
Message
Author
User avatar
Sit Heel Speak
Posts: 2595
Joined: Fri 31 Mar 2006, 03:22
Location: downwind

A possible solution to "flash crash"

#1 Post by Sit Heel Speak »

***ADVISORY: This is probably not a good idea to use on Puppies other than upup's in the 432/450 series, the best probably being playdayz' upup based on woof 20091120 (though, disclaimer, I haven't tried it yet). The reason is that this package was compiled on upup-450, which carries libc.so.6 version 2.10.1, unlike most Puppies which carry only 2.6.1. But I have experimented with this package on Puppy 4.2-rt-smp and found that it does indeed stop the flash crash (however, it breaks PWidgets on 4.2). The ideal thing to do, for someone with skill and time, until I can find time to compile the package for more common Puppies, is to figure out by process of elimination which libraries in this add-on package are broken or missing in Puppy.***

***UPDATE: there was a bug in version -r4. The libraries liblber-2.4.so.2.5.2 and libldap_r-2.4.so.2.5.2 do not report their version numbers correctly to git and jhbuild, and this causes git and jhbuild to error out. Therefore, this bugfix version -r5, in which I drop back to version 2.5.1 in both libraries. This has been tested and retains the ability to prevent flash crash, while fixing the problems in both git and jhbuild. For the technically inclined: the 2.5.1 versions are *included* in -r4, alongside the 2.5.2 versions, so if you just change the .so et cetera symlinks then you in effect have -r5.***

Download:
http://puppylinux.ca/tpp/SitHeelSpeak/n ... 5_432.sfs4
size: 11,243,520 bytes (sorry it is so gargantuan, I don't have time to strip it)
md5sum:
md5sum newlibcurl-4.1.1-r5_432.sfs4
34c3b0bc78e34576b826fe2309d5ea99 newlibcurl-4.1.1-r5_432.sfs4

This is an up-to-date build of libcurl 4.1.1 and its dependencies. Whenever you play a flash video, curl and/or libcurl is/are called in order to fetch the video; although libcurl is not listed as an ldd dependency of flashplayer, reportedly it is statically linked, see http://curl.haxx.se/mail/lib-2006-10/0246.html

It is possible that this build of curl+libcurl may solve the problem many Puppyists have reported, of Opera, Seamonkey, and Firefox crashing when attempting to play flash video using Adobe Flashplayer 10 under Puppy Linux. I have tested it in upup-432, upup-450, and Puppy 4.2-rt-smp and it absolutely abolishes the flash crash in Seamonkey.

You will need to rename it to suit your Puppy version number. For example, if you have created (using Karmic Woof) a upup_439.iso, then rename my SFS to newlibcurl-4.1.1_439.sfs and put it in /mnt/home and tell Menu --> System --> BootManager to load it at your next boot. And then reboot and see if watching flash video on YouTube et cetera crashes your browser. Hopefully, not.

This is a version 4 SFS, suitable for Puppies...mm, 4.2 and newer I think; I don't recall offhand when we made the transition from SFS version 3 to version 4. If it fails to mount on your system then you need a version 3 SFS. I will attend to this as soon as I can.

If you are in Cuba, Iran, Iraq, Libya, North Korea, Sudan, or Syria, then you are forbidden by U.S. law from downloading this SFS, because it contains the Kerberos 5 encryption algorithm. See http://web.mit.edu/kerberos/dist/index.html for the usual horse droppings from Uncle.

May your flash never crash,
SHS
Last edited by Sit Heel Speak on Fri 04 Dec 2009, 04:51, edited 26 times in total.

User avatar
Lobster
Official Crustacean
Posts: 15522
Joined: Wed 04 May 2005, 06:06
Location: Paradox Realm
Contact:

Re: A possible solution to "flash crash"

#2 Post by Lobster »

Sit Heel Speak wrote: May your flash never crash,
SHS
Renamed to newlibcurl_431.sfs for Puppy 4.3.1
Hope it works - my crashing occurs half way throught a 30 min tv program using flash - so will test next time I watch something . . .
Much appreciated
:)
Puppy Raspup 8.2Final 8)
Puppy Links Page http://www.smokey01.com/bruceb/puppy.html :D

User avatar
Sit Heel Speak
Posts: 2595
Joined: Fri 31 Mar 2006, 03:22
Location: downwind

#3 Post by Sit Heel Speak »

For those who wish to attempt this compiling project yourself (and maybe weed out my duplicates?), here are the source versions. It took much trial-and-error to find this "Goldilocks combination":

c-ares-1.6.0
fbopenssl-0.0.4
krb5-1.6.3
db-4.5.20
curl-7.18.2
libssh2-1.2.2
make-3.8.1
openldap-stable-20091028 (***edited you need a version which gives you version 2.5.1 of libldap_r and liblber, not 2.5.2; this may or may not be it. Possibly openldap-2.4.19.***)
openssh-5.3p1
openssl-0.9.8l
(libcrypto is from libssl0.9.8_0.9.8g-15+lenny5_i386.deb)
stunnel-4.28
zlib-1.2.3

sharutils-4.6.3 is also on my machine, but I don't think you need it. If you find that I left out something, feel free to ask, and I'll tell you which version I have.

If you try different source versions, make sure each one passes 'make check' or 'make test' before you proceed to the next. Sorry, I did not write down the series order. You'll have to find it yourself, but you already know how to do that. Good luck.
Last edited by Sit Heel Speak on Thu 03 Dec 2009, 07:04, edited 11 times in total.

User avatar
Sit Heel Speak
Posts: 2595
Joined: Fri 31 Mar 2006, 03:22
Location: downwind

#4 Post by Sit Heel Speak »

(reserved)
Last edited by Sit Heel Speak on Tue 01 Dec 2009, 20:38, edited 1 time in total.

User avatar
Sit Heel Speak
Posts: 2595
Joined: Fri 31 Mar 2006, 03:22
Location: downwind

#5 Post by Sit Heel Speak »

Third, revised version -r2 now up (I caught one additional incorrect symlink). (Lord, but this was a bear to compile...)

User avatar
Sit Heel Speak
Posts: 2595
Joined: Fri 31 Mar 2006, 03:22
Location: downwind

#6 Post by Sit Heel Speak »

Fourth, revised version now up. The third is still good if you don't need c-ares, stunnel, and updated libdb.

User avatar
Lobster
Official Crustacean
Posts: 15522
Joined: Wed 04 May 2005, 06:06
Location: Paradox Realm
Contact:

#7 Post by Lobster »

Gosh just installed the 3rd . . .

I do not know if it is any help
but Puppy 4.3.1 with Seamonkey 1..1.8 and Flash 10
worked OK
Then I tried Seamonkey 2
and deleted it after about a week - still not reliable enough
That is when I started experiencing probs with the original Seamonkey 1..1.8
- even thought the installs were meant to be independent

8)
Puppy Raspup 8.2Final 8)
Puppy Links Page http://www.smokey01.com/bruceb/puppy.html :D

User avatar
mikeb
Posts: 11297
Joined: Thu 23 Nov 2006, 13:56

#8 Post by mikeb »

Adobe Flash Player calls libcurl whenever you play a flash video,
Interesting...could you give more detail as this is a pet (not .pet :D ) issue...libcurl is not listed as a dependancy so I assume it's called via the browser.
I happen to have had libcurl.sp.411 for a couple of years...came from debian if I recall as was dealing with ftp file sharing at the time and must admit as to never having crashes from video playback in flash. The only crashes I get are random when browsing back and forth on you tube.

regards

mike

by the way I see the flash problem as a weakest link syndrome...and this varies from setup to setup...I believe my weakest remaining link on one setup for example is the X server....libcurl could well be the dodgy spot for others.

amigo
Posts: 2629
Joined: Mon 02 Apr 2007, 06:52

#9 Post by amigo »

My guess is that it calls the curl program -not the lib.

User avatar
Sit Heel Speak
Posts: 2595
Joined: Fri 31 Mar 2006, 03:22
Location: downwind

#10 Post by Sit Heel Speak »

mikeb wrote:...libcurl is not listed as a dependancy so I assume it's called via the browser.
Technical imprecision corrected in original post. "flashplayer calls libcurl" --see next post.
Last edited by Sit Heel Speak on Thu 03 Dec 2009, 07:07, edited 2 times in total.

User avatar
Sit Heel Speak
Posts: 2595
Joined: Fri 31 Mar 2006, 03:22
Location: downwind

#11 Post by Sit Heel Speak »

Here, I found the specific forum post on the curl website. This is not at all nebulous:

http://curl.haxx.se/mail/lib-2006-10/0246.html
> Adobe's recently released Flash Player 9 beta for Linux (and presumed future
> builds for other unix) statically link libcurl but don't reproduce the
> required MIT-style copyright notice anywhere in software, nor accompanying
> documentation or licence. There is only a reference to the URL for
> Adobe's "Pre-Release Software" licence in the documentation.

User avatar
mikeb
Posts: 11297
Joined: Thu 23 Nov 2006, 13:56

#12 Post by mikeb »

statically link libcurl
internal perhaps...hmm.

Certain mozilla libs are called for flash 10 which in my head would mean the browser compilation plays a part....the plot is already thick.
One question that comes to mind is what did flashplayer use previously?

mike

User avatar
Sit Heel Speak
Posts: 2595
Joined: Fri 31 Mar 2006, 03:22
Location: downwind

#13 Post by Sit Heel Speak »

mikeb wrote:internal perhaps...hmm...
It raises the question in my mind, if it's statically linked then why does upgrading the standalone libraries improve things?

I would venture to speculate that the browser calls the shared version of the library, and flashplayer is calling its internal copy. And between the two versions there is a mismatch. My first guess would be that one version is passing either a variable or stack return value as a literal (by value) and the other by reference, and the mismatching goblin is being overambitiously declared as global. But I am not an Adobe programmer, I only play one on TV, and the real reason could be a lot simpler than that.

Whatever the reason, the fact remains that this sfs does cure flash crash. It could be that it replaces a single missing library and thus is like using a cannon to kill a fly. Nevertheless, it works. But I don't have time at the moment to isolate the effective ingredient.
Last edited by Sit Heel Speak on Wed 02 Dec 2009, 18:49, edited 5 times in total.

User avatar
Sit Heel Speak
Posts: 2595
Joined: Fri 31 Mar 2006, 03:22
Location: downwind

#14 Post by Sit Heel Speak »

(double post)

User avatar
mikeb
Posts: 11297
Joined: Thu 23 Nov 2006, 13:56

#15 Post by mikeb »

I would venture to speculate that the browser calls the shared version of the library, and flashplayer is calling its internal copy. And between the two versions there is a mismatch.
well that sounds like a viable guess....certainly not doubting that the fix works...I have come up with a few that denied immedeate logic but found the core reason later.....knowing the cause makes it easier to fix....certainly I will be checking up libcurl versions.

I'm not 100% but it looks like my version came from debian sid
http://packages.debian.org/sid/libcurl3

oh the joy of second guessing adobe :D

mike

User avatar
Sit Heel Speak
Posts: 2595
Joined: Fri 31 Mar 2006, 03:22
Location: downwind

#16 Post by Sit Heel Speak »

mikeb wrote:...knowing the cause makes it easier to fix...
heh...but sometimes you have to settle for having the Schroedinger's cat --er, I mean, the cannon --er, I mean, the fix first. Perhaps the phenomenon of this fix and the identity of the (presumably known-working-good) Debian package will help someone who has access to the Adobe source code (or maybe the browser source code?) to identify the exact location of the cause and thereby discover the error's governing principle :wink: Onward we press, not knowing whose dreams we advance, ambitions unfold, plots we thwart...

User avatar
mikeb
Posts: 11297
Joined: Thu 23 Nov 2006, 13:56

#17 Post by mikeb »

Onward we press, not knowing whose dreams we advance, ambitions unfold, plots we thwart...
:D

Well the debian package is one of those co-incidences so perhaps you are in the best postion to test it's usefulness.

My brain cell has just told me that I updated it for cclive the flash downloader...(ooo another co-incidence) which would have been early this year...I previously was using 4.1.0....

I guess there should be a sticky thread created entitled
The big dummies guide to stable flash
incorporating all known fixes or at least links to them.

mike

Post Reply