A possible solution to "flash crash"
- Sit Heel Speak
- Posts: 2595
- Joined: Fri 31 Mar 2006, 03:22
- Location: downwind
A possible solution to "flash crash"
***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
***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.
- Lobster
- Official Crustacean
- Posts: 15522
- Joined: Wed 04 May 2005, 06:06
- Location: Paradox Realm
- Contact:
Re: A possible solution to "flash crash"
Renamed to newlibcurl_431.sfs for Puppy 4.3.1Sit Heel Speak wrote: May your flash never crash,
SHS
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
- Sit Heel Speak
- Posts: 2595
- Joined: Fri 31 Mar 2006, 03:22
- Location: downwind
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.
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.
- Sit Heel Speak
- Posts: 2595
- Joined: Fri 31 Mar 2006, 03:22
- Location: downwind
- Sit Heel Speak
- Posts: 2595
- Joined: Fri 31 Mar 2006, 03:22
- Location: downwind
- Sit Heel Speak
- Posts: 2595
- Joined: Fri 31 Mar 2006, 03:22
- Location: downwind
- Lobster
- Official Crustacean
- Posts: 15522
- Joined: Wed 04 May 2005, 06:06
- Location: Paradox Realm
- Contact:
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
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
Interesting...could you give more detail as this is a pet (not .pet ) issue...libcurl is not listed as a dependancy so I assume it's called via the browser.Adobe Flash Player calls libcurl whenever you play a flash video,
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.
- Sit Heel Speak
- Posts: 2595
- Joined: Fri 31 Mar 2006, 03:22
- Location: downwind
Technical imprecision corrected in original post. "flashplayer calls libcurl" --see next post.mikeb wrote:...libcurl is not listed as a dependancy so I assume it's called via the browser.
Last edited by Sit Heel Speak on Thu 03 Dec 2009, 07:07, edited 2 times in total.
- Sit Heel Speak
- Posts: 2595
- Joined: Fri 31 Mar 2006, 03:22
- Location: downwind
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
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.
- Sit Heel Speak
- Posts: 2595
- Joined: Fri 31 Mar 2006, 03:22
- Location: downwind
It raises the question in my mind, if it's statically linked then why does upgrading the standalone libraries improve things?mikeb wrote:internal perhaps...hmm...
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.
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 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.
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
mike
- Sit Heel Speak
- Posts: 2595
- Joined: Fri 31 Mar 2006, 03:22
- Location: downwind
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 Onward we press, not knowing whose dreams we advance, ambitions unfold, plots we thwart...mikeb wrote:...knowing the cause makes it easier to fix...
Onward we press, not knowing whose dreams we advance, ambitions unfold, plots we thwart...
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