abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 13:22 | Zajímavý projekt

    Francouzská veřejná správa má v rámci vládní iniciativy LaSuite Numérique ('Digitální sada') v plánu od roku 2027 přestat používat Microsoft Teams a Zoom a přejít na videokonferenční platformu Visio, hostovanou na vlastním hardwaru. Konkrétně se jedná o instance iniciativou vyvíjeného open-source nástroje LaSuite Meet, jehož centrální komponentou je LiveKit. Visio nebude dostupné pro veřejnost, nicméně LaSuite Meet je k dispozici pod licencí MIT.

    NUKE GAZA! 🎆 | Komentářů: 0
    dnes 12:11 | IT novinky

    Eben Upton oznámil další zdražení počítačů Raspberry Pi: 2GB verze o 10 dolarů, 4GB verze o 15 dolarů, 8GB verze o 30 dolarů a 16GB verze o 60 dolarů. Kvůli růstu cen pamětí. Po dvou měsících od předchozího zdražení.

    Ladislav Hagara | Komentářů: 2
    dnes 05:11 | Zajímavý software

    Shellbeats je terminálový hudební přehrávač pro Linux a macOS, který umožňuje vyhledávat a streamovat hudbu z YouTube, stahovat odtud skladby a spravovat lokální playlisty. Pro stahování dat z YouTube využívá yt-dlp, pro práci s audiostreamy mpv. Je napsán v jazyce C a distribuován pod licencí GPL-3.0, rezpozitář projektu je na GitHubu.

    NUKE GAZA! 🎆 | Komentářů: 4
    dnes 03:22 | Nová verze

    Byla vydána nová verze 26.1.30 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. S podporou hardwarového dekódování videa. Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.

    Ladislav Hagara | Komentářů: 0
    dnes 03:00 | Nová verze

    LibrePCB, tj. svobodný multiplatformní softwarový nástroj pro návrh desek plošných spojů (PCB), byl po deseti měsících od vydání verze 1.3 vydán ve verzi 2.0.0. Přehled novinek v příspěvku na blogu a v aktualizované dokumentaci. Zdrojové kódy LibrePCB jsou k dispozici na GitHubu pod licencí GPLv3.

    Ladislav Hagara | Komentářů: 1
    včera 21:11 | Komunita

    Guido van Rossum, tvůrce programovacího jazyka Python, oslavil 70. narozeniny. Narodil se 31. ledna 1956 v nizozemském Haarlemu.

    Ladislav Hagara | Komentářů: 5
    včera 12:22 | Zajímavý software

    OpenClaw je open-source AI asistent pro vykonávaní různých úkolů, ovládaný uživatelem prostřednictvím běžných chatovacích aplikací jako jsou například WhatsApp, Telegram nebo Discord. Asistent podporuje jak různé cloudové modely, tak i lokální, nicméně doporučován je pouze proprietární model Claude Opus 4.5 od firmy Anthropic v placené variantě. GitHubová stránka projektu OpenClaw.

    NUKE GAZA! 🎆 | Komentářů: 3
    včera 03:00 | Komunita

    Projekt VideoLAN a multimediální přehrávač VLC (Wikipedie) dnes slaví 25 let. Vlastní, tenkrát ještě studentský projekt, začal již v roce 1996 na vysoké škole École Centrale Paris. V první únorový den roku 2001 ale škola oficiálně povolila přelicencování zdrojových kódů na GPL a tím pádem umožnila používání VLC mimo akademickou půdu.

    Ladislav Hagara | Komentářů: 2
    31.1. 18:11 | Humor

    Moltbook je sociální síť podobná Redditu, ovšem pouze pro agenty umělé inteligence - lidé se mohou účastnit pouze jako pozorovatelé. Agenti tam například rozebírají podivné chování lidí, hledají chyby své vlastní sociální sítě, případně spolu filozofují o existenciálních otázkách 🤖.

    NUKE GAZA! 🎆 | Komentářů: 3
    31.1. 18:00 | Humor

    scx_horoscope je „vědecky pochybný, kosmicky vtipný“ plně funkční plánovač CPU založený na sched_ext. Počítá s polohami Slunce a planet, fázemi měsíce a znameními zvěrokruhu. Upozornil na něj PC Gamer.

    |🇵🇸 | Komentářů: 4
    Které desktopové prostředí na Linuxu používáte?
     (19%)
     (6%)
     (0%)
     (10%)
     (24%)
     (3%)
     (5%)
     (2%)
     (11%)
     (31%)
    Celkem 726 hlasů
     Komentářů: 23, poslední dnes 13:14
    Rozcestník

    CryoPID - zmražte procesy s horkou hlavou

    10.9.2009 01:36 | Přečteno: 1241× | programování | poslední úprava: 17.11.2009 21:33

    Jednou jsem ladil pythoní program s race condition, která se vyskytovala výjimečně (pravděpodobnost cca 1:1000-1:100) když bylo spuštěno mnoho instancí daného programu paralelně. Identifikovat moment, kdy se invariant porušil nebylo těžký, jenže zalogování nestačilo - a python nemá nástroj pro "ekvivalent" coredumpu, který by se pak později mohl prohlédnut debuggerem.

    Po delším googlení jsem narazil na projekt CryoPID, který umí zmrazit proces do ELF binárky na disku (ta pak pokračuje od momentu zmražení). Přeložit to nebylo nic snadné (nadával jsem než se mi to povedlo zprovoznit přes různé hacky).

    Download

    Binárky a ohackované zdrojáky mají původ v momentálním mercurial tip (7da69201d50e).

    Bohužel i386/i686 binárky nemám, protože po překladu v 32bit chrootu nefungovaly. (Starší předkompilované binárky je možné stáhnout ze stránky projektu).

    Přenositelnost cryopid

    Vzhledem k tomu, že se cryopid linkuje jenom proti libz a glibc, mělo by to fungovat všude. Vyzkoušel jsem to na Gentoo glibc 2.8, Debianu Lenny a Etch. S Debianem problém nebyl, na Gentoo z nějakého důvodu nešlo obnovit zmraženy python2.5 procesy. Python 2.4 a 2.6 byly ok, spíš než na verzi jádra bych to tipoval na verzi knihoven. Segfault od zmraženého python2.5 procesu byl tak hustý, že i gdb lakonicky zahlásilo "Process no longer exists".

    Holt CryoPID není dokonalý, ale smekám proti tomu co umí.

    Ohackované zdrojáky obsahují copy-and-pastnuté definice maker _syscall2 a _syscall4, které myslím od jádra 2.6.20 nejsou součástí kernel-headers (nebo kernelu samotného). Podobně pro i686 bude nejspíš stačit nadefinovat (copy-and-pastovat syscall kód přes int 0x80). Příliš do kernel developmentu nevidím, pokud víte jak nahradit tyhle makra, neváhejte se ozvat.

    Makefile-y ohackovaných zdrojáků obsahují include /usr/src/linux, tudíž pro úspěšný překlad buď musíte mít zdrojáky jádra nebo kompatilní kernel-headers.

    Zmrazování při detekci porušení invariantu při race condition (příklad)

    Pozn: já používám Komodo IDE remote debugger (dbgp.client, metoda brk), ale klidně by šlo použít třeba na winpdb nebo jiný debugger. Pointa zmražení je, že "odmražený" spuštený proces se rovnou připojí k debuggeru.

    #!/usr/bin/env python
    
    import sys
    
    sys.path.append("/opt/Komodo/")
    
    from dbgp.client import brk
    
    import os
    import subprocess
    import time
    
    class A(object):
        def __init__(self, **kwargs):
    	self.__dict__.update(kwargs)
        def __str__(self):
    	return str([(k, v) for (k, v) in self.__dict__.iteritems()])
    
    a = A(a=1, b=2, c="c")
    
    #Tady je nejaky test kde se zjisti ze se neco rozbilo a nedava smysl.
    #Kdyz se neco rozbilo, zavolame fork a freeznem childa
    
    pid = os.fork()
    if pid > 0: #parent
        argv = ["/home/ondro/bin/cryopid", "-l", "child.cryo", str(pid)] 
        p = subprocess.Popen(argv, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        l = p.communicate()
        p.wait()
        print l[0]
        print l[1]
    
        print "Freeze finished"
        sys.exit(0)
    elif pid == 0: #child
    
        time.sleep(5) #chceme se vyhnout race condition nez se proces zmrazi, systemovy semget() by byl lepsi
        brk(host="localhost", port=9000)
        for i in range(5):
    	print "Sleeping: ", i
    	time.sleep(1)
    
        print a
    else:
        print "Fork failed"
    

    Checkpointing software

    Když vás zajímjí podobné postupy, podívejte se na Checkpointing software.

           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.