This post is a - hopefully - searchable note about a very ugly effect, where Chrome, Chromium, and everything based on its Electron backend just crash in various ways, and one possible cause, with the suggestion what to do (spoiler: panic!).
I was updating my system, which is Debian/unstable, so there was a good chance that some library is broken, or the display driver, or the Xserver, or maybe libc6 herself, because various parts were just upgraded.
Funny that I rarely have the time to play games, but today I needed to stay up so decided to check Skyrim again (which runs flawlessly under Linux+Steam, mind you; how technology have advanced…), and had to realise that the Steam UI just crash. Beta too. Then Chromium crashed. Then Signal desktop client, and I started dot the t's, cross the i's and connect them with lines… I mean, I started to be suspicious about Chrome/Electron, and indeed, most of the other stuff worked. So, I started looking.
The first was trying to disable the Chrome sandbox (CEF) since the net wisdom mentioned that Chrome sandbox is very picky about library updates, and may react with a crash to an unknown library call. Turned out that Steam already did that by itself since this was an already "worked around" bug (in clone3() call if anyone interested). Anyway, disabling CEF didn't help (since it was already partially disabled).
The next was upgrading libraries, since it may have been caused by any incompatible library, but after updating everything Electron depends it still crashed.
So I have updated the display driver, since the previous update may have partially done that and the closed-source nvidia driver sometimes make funky things when the kernel driver mismatches the xwindow libs; restarted X, to no avail though. Still crashing.
After that I was worried that any library may cause this since I have only upgraded some code instead of the whole system and some libs may become incompatible with some other libs. It took a while to upgrade the system, but the effect was the same.
I was worried that the machine needed a reboot, mainly because these modern mainboards have the ugly habit of not booting MBR in various circumstances and grub mentioned in a deadpan voice that "there was no BIOS partition in sda so the boot wasn't updated", which means that if BIOS is happy with sdb then the system boots, if not then the system needs magic. So I really don't want to reboot right now.
Then went to sleep.
You did what?
So I was in the general unhappy mood, since I really didn't want to reboot, and a lot of stuff uses Electron, and since the libs were upgraded I was thinking that it's either a lib I need to downgrade, but it's a bit hard to point to one among the 5000 present, or I have to reboot the machine which may or may not work. I was also doing my work, and tried to start something (some compiler, actually, but that's not important), which failed in a way suggested that a disk is full and the temp files were not possible to save. Sometimes happens (the stuff always fills any storage, no matter the size), and I started looking. No, the disk is not full. None of them, in fact. But… what is this?!
# df
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 6662240 6662240 0 100% /dev/shm
You may not know /dev/shm. It is a cute temporary storage in shared memory,
kind of/tmp/, which is fast, comparable in size to the total memory and usually quite empty.
Well not today! It is in memory, so it gets forgotten throughout reboots, but betwen them it is fairly stable: if someone puts a file there then it shall remove when it's not needed anymore. If specific someones create bazillions of gigantic clutter and ignore to remove then the storage (along with some of the available memory) is gone. Full. To the brim.
And of course it was… [drum roll] Steam+Electron!
Steam likes to crash, not badly, but since it juggles with various black magic stuff (including lot of shell scripts, an electron based UI, a patched-to-death WINE called Proton, various Vulkan shader pre-, post- and nobody-know-why-compiling, apart from weird updates) it sometimes throws in the towel and faints.
However, as it turned out, it leaves its stuff behind. And not small stuff, mind you. Hundreds of megabytes per crash. And it takes only 5-6 of those to fill the poor storage. And it did.
And from then on nothing which uses the storage (and smart enough to notice that it's full, I'm looking at you, Electron!) was able to operate, and have been crashed in various absolutely meaningless and non-deterministic way. Call that impossibe to debug.
I see the tough life of the maintainers of Electron based stuff: they get these invalid opcode error reports and it may have been caused by absolutely anything.
Cleared /dev/shm (everything older than 2 days, minus /dev/shm/.tmpfs). Everything works. Damn.
Summary
Chrome/Electron crashes, illegal instructions in libcef.so or in ThreadPoolForeg(round) caused by the temporary storage /dev/shm being full; filled by crashed Electron-based code (Steam).
1. the visuals of the crash log superimposed on the keyword list on the side is part of the dramatic effect! :-)
– Légy szíves told arrébb Gödöllőt! – kérte anyukám apukámat. –
szeretnék egy könyvet kihozni.
De apukám épp számolt, és bizonyosan nem ér rá ilyen földhöz ragadt
problémák megoldására, így segítőkészen Gödöllő külvárosát óvatosan
felszedtem, és arrébb tettem (akkor még nem tudtam, hogy valószínűleg a
Kastélypark közelébe mozgattam a fél Alvéget), hogy anyukám –
feltehetően átlépve a Rákos-patak pici tavacskáját – odajusson a
könyvespolchoz.
Természetesen a Gödöllőiekkel nem szúrunk ki, így utána visszatettem
őket szépen a helyükre. Talán észre sem vették, maximum a buszvezetők
csodálkozhattak, hogy az utcák egyszer csak… de aztán már megint nem.
Nem került be az újságba, és a nyolcvanas évek tévéhíradója sem tett
róla említést.
Amúgy mindig óvatosan jártam Gödöllő utcáit. Az ember igyekszik nem
rálépni a házakra, de hát egy 8-9 éves láb már elég nagy, az utcák pedig
parányiak, szinte lehetetlen úgy lépni, hogy a házakat elkerülje az
ember. Persze csak zokniban lépünk rájuk, mert az puha, és nem
tapad a pucér talphoz minden utca. Az kellemetlen, amikor az ember
lábához minden odaragad aztán hurcolja magával a szomszédságot is!
Nyilván apukám sem szerette, amikor átrendezem a várost, és a jól
kidolgozott zoknis közlekedési módszernek köszönhetően a helyiek relatív
biztonságban voltak.
De még ők sem látták azt, amit én láttam. A csöveket.
Mindenfelé mentek, az utcák alatt, a házak felé, de még a réten is. Pici
csövecskék a házaktól, bele a nagyobb csövekbe, majd a mégnagyobbakba,
és közben időnként kicsi és nagy dobozok, nyilakkal meg körökkel! És
színes ceruzás vonalak is, ami egy 8 éves számára teljesen logikus,
hiszen minek legyen az embernek csöve, ha az nem színes?!
Persze én nem tudtam volna a csöveket odarajzolni nekik. Ez egy
tényleg nagy város, sok-sok csővel. Azokat apukám rajzolta oda.
Persze nem úgy, ahogy te rajzolnád! Csak fogni egy ceruzát
és firkálni! Ugyan! Ne nevettess, kac-kac!
Az én apukámnak ilyen nagy rajztáblája volt, és vonalzók voltak
benne! Meg szögmérő is! Meg olyan, na, izék, azokat nem
tudom mire valók, de azok is. Természetesen én is tudok vele rajzolni,
mert apukám megmutatta, én pedig rajzoltam vele, mondjuk nem csöveket,
hanem házat meg utcát, mert a csöveket nem csak úgy odacsapod! A
csöveket ki kell számolni!
Ó, ezt te nem is tudod, persze, mert elfelejtettem mondani. Ne
haragudj! A csövek a legfontosabbak!
A csövek még nem léteznek. Apukám tervezi őket.
A csövekben gáz megy. Földgáz. Hogy-hogy honnan, hát a földből, te
gyagya! Mert ott is voltam már, kiskunakárhol, ahol a bólogató olajkutak
is vannak (fúú, az is tök érdekes, meg nagy és büdös, és ott apukám
legjobb barátja csinál csodákat); de persze nem mindegyik onnan jön,
mert ott nincs olyan sok, de a többi meg messziről jön ilyen
bazi csöveken! Nagyobb a cső mint én vagyok! És ha felmászol rá
akkor a bácsik nevetgélnek és azt mondják, hogy ha a főnökük ezt
meglátná akkor se—— … fenéken rúgna mindenkit, és nehogy leessek mert
akkor el is fenekelnek.
Na és a gáz az ugye az, amivel anyukám is főz, meg ami a konvektorban
fűt. Amúgy mivel gáz, nem lehet látni, csak érezni, hogy büdös (de
apukám azt is elmondta, hogy a gáz nem is büdös, hanem egy iszonyú
büdösséget fújnak bele[1], amivel
egyszer megviccelték egy munkatársát akire mérgesek voltak, és egy
majdnem üres fiolát bedobtak az autójába, és hónapokig „gázszag” volt
még a környékén is, ezen nagyon sokat nevettünk, de azt hiszem
hogy a munkatársa nevetése nem lehetett teljesen őszinte, bár én úgy
képzeltem, hogy mérges volt de az én apukám mindenkinél erősebb volt,
ezért nem verekedtek csak morogtak egymás felé, gondolom,
mint a dühös kutyák).
De nem lehet csak úgy csöveket odatenni. Apukám elmagyarázta. Ha
figyelsz, elmagyarázom neked, majdnem úgy, mintha ő mondta volna, már
amennyire persze értettem, de majd ha nagy leszek, akkor én is fogom
úgy tudni mint ő, és akkor majd gyere vissza és elmagyarázom jól!
Szóval te azt gondolod, hogy a csőbe belefújják a gázt, és az kijön a
végén, de nem! A gáz ugyanazt csinálja, mintha folyékony lenne, mintha
vizet öntenél a csövön át. Ó, te azt gondolod, hogy a víz is csak úgy
folyik a csőben! De nem!
A cső fala ilyen recés, mint a beton, ami felkarcolja a térdemet. És
ezekbe a recékbe beleakad a víznek, meg a gáznak a belseje, és
lelassítja. De a gáz közepe nem ér hozzá, a széle meg igen, és
elkezdenek az oldalán pici örvények születni! És az egész széle egy
csomó kis örvény, ami lassítja a gázt! Amikor bemegy a csőbe, akkor jó
erősen bele kell pumpálni (nagy nyomással, mint a porszívó amikor
fordítva szereled össze és fújja a levegőt a csövön, mert az is gáz!),
hogy amikor ezek az örvények lelassítják akkor is kijusson a másik
oldalon. Vagy ilyesmi.
És apukám ezeket az örvényeket ki tudta számolni. Meg hogy milyen
vastag a cső, és milyen vastag az örvény. Meg hogy áramlik benne a gáz.
Meg hogy a gáz milyen gyors itt és amott, milyen a nyomása az elején
meg a végén, és hogy mekkora cső kell az elején hogy a végén még
lehessen vele főzni!
Ilyen nagy képletekkel, meg a Texas számológéppel, aminek piros
a kijelzője és szalag jön belőle, ha épp nem fogyott el.
A dobozok, amiket mondtam, azok meg a nyomást változtatják, hogy
visszategyék, ami elfogyott, vagy éppen lecsökkentsék, mielőtt bemegy a
házba, hogy ne repüljön el a gáztűzhelyről az edény vagy ne fújja ki az
embereket az ablakon! A papíron ezek kicsik, de van olyan
baazinagy meg egészen picike is.
És ezekből kijött, hogy melyik cső milyen vastag, meg hogy
kanyarodik-e, meg hogy hol kell neki doboz. És hogy hogyan jut el
mindenhova, onnan, ahol már van oda, ahol még nincs. Nyilván!
Egyre több cső volt a térképen, amin járkáltam a nagy szobában, és
amiket időnként apukám felszedett, majd időnként visszapakolt. Amikor már
nem fért rá több cső sehova, akkor készen volt a város, és a papírok
elindultak azokhoz a bácsikhoz, akik a gödröket ásták a csöveknek, akik
odavitték, hegesztették (nem szabad nézni! van nekik ilyen szemüvegük,
de nekem adtak egy fekete üveglapot, azon át szabad), meg akik majd
végig összerakják az egészet.
Amiből majd az emberek házaiba megy a gáz, amivel fűteni fognak télen,
és főzni (akár nyáron is).
A rajzolt csövekből igazi csövek leszenek! Amit apukám odarajzolt.
Yet another "google killer" and "the next google" is starting.
It called Neeva, and it claims that it is:
free
ad-free
private
customizable
can search personal accounts (mail, calendar, documents)
users can register for greatesterest experience
Without concentrating at how their search works (which would require
some insight of their actual hardware and architecture) let me just concentrate
on the first things first: their Terms of Service. Basically I am making
notes to myself, but you may read them if you like.
Ad-free
Not really. If you choose the "Free" plan (or didn't register), then
you get 50 searches per month ad-free, after that you get,
guess what, advertisements.
Search personal accounts
Not really. It is "Pesonal account---", singular, since you can search
one such accounts in the free plan.
Free
Not really. You will notice that pretty fast when you try to use your
third device… since one neeva account is limited to maximum
2 devices in the free plan.
Not USA? Go away.
Are you an US citizen? Your lucky day! But if you happen to live outside the
US you better stay away from Neeva since you're "breaking the law"!
The ToS clearly states (section 4): You may use the Services only if you are 18 years or older, a resident of the United States, and capable of forming a binding contract with Neeva, and not otherwise barred from using the Services under applicable law.
Will it stay "free"?
It may. Or not. ToS says (section 6): Our Free Basic Tier Services are currently free to use
Registration
I guess that by registering you restrict yourself to the limits of the
free plan, eg. ads after 50 search, limited to 2 devices, etc.
Architecture
I may update this section if I had some time to dig up information.
KIMAGA együttes - Hideg Van
Hol vagyok?
Megfagyok!
Dimitríj halkan így nyafog.
Hallgatom
Margit bácsit az ágyamon.
Szaratov
Jégszekrényünk hűt nagyon!
Fú a szél
Hullahopp...
A mélyhűtőben farkasok!
Hol vagyok?
Dimitríj halkan megfagyott...
Elfeledtem
Elzárni a jégcsapot!
Ezt a paródiát az 1979-es szilveszteri műsorra készítették, és az
Egymillió Foltos Hangjegy című műsor utolsó száma volt.
Az előadó a Gúnya együttes: Lehr Ferenc, Rácz Mihály, Köllő Miklós.
A parodizált szám pedig az Omega együttes „Léna” című száma volt.
A Szovjet Központi Akadémia három tudósa (akik természetesen a Szovjet Kommunista Párt kiemelt személyiségei) sétálnak az utcán. Egyszer csak meglátnak valamit a földön. Odamennek, nézik. Megszólal az első:
- Ez szerintem szar.
A második megcsóválja a fejét:
- Elnézését kérem tanult kollégámnak, de véleményem szerint ez nem szar.
A harmadik is csóválja a fejét:
- Szerintem sem az. Talán nézzük meg az állagát?
Odaguggolnak, és mindegyik alaposan megtapogatja.
- Én továbbra is állítom, hogy ez szar. - mondja az első.
- Véleményem szerint sajnos ez nem felel meg a valóságnak. - sajnálkozik a második.
A harmadik hümmög:
- Nem, véleményem szerint sem.
Megszagolgatják. És a harmadik is a fejét csóválja:
- Nos, mégis úgy gondolom, hogy szerintem is szar. - de a középső csak nem ért velük egyet, hát megegyeznek, hogy megkóstolják. Mindegyik kap egy darabot, értőn megvizsgálják. Az első mondja:
- Elvtársaim, ez bizonyosan szar.
A második is bólogat:
- Szerintem minden kétséget kizáróan.
A harmadik hosszan gondolkozik, majd bólint:
- Be kell látnom, elvtársaim, hogy meghajlok érveik előtt, és egyetértek, hogy a jelek szerint ez tényleg szar! - majd megkönnyebbülten hozzá teszi: