Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2016-11-12

| Channels | #divine index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
01:57 divine-buildbot joined #divine
02:17 divine-buildbot joined #divine
02:48 ilbot3 joined #divine
02:48 Topic for #divine is now DIVINE | http://divine.fi.muni.cz | http://irclog.perlgeek.de/divine/
03:22 divine-buildbot joined #divine
10:29 yaqwsx joined #divine
11:17 yaqwsx joined #divine
11:18 xstill segví nám divine, někde v __memmove_avx_unaligned_erms na asi rozbitým stacku, protože pod tím není nic vidět… a navíc po pár set tisích stavech…
11:18 xstill zkusím jestli se mi náhodou nepodaří postavit asan build
11:23 xstill aha, asan má ten debilní bug s inicializací, tak nic no…
11:24 mornfall jakou inicializací?
11:25 xstill tuším, že to bylo něco jako, že v glibc změnili něco co ovlivnilo nějakej hroznej hack v asanu a on se teď snaží rekurzivně inicializovat
11:25 mornfall ah
11:31 xstill fix přistál v asanu 16. 5. tak to snad v 3.9 bude opravený
11:33 xstill Invalid write of size 8 …  Address 0x40d63000 is in a rwx anonymous segment
11:33 xstill mornfall: tušíš co to ^ může znamenat?
11:34 xstill každopádně hasher hrábnul na něco dost divnýho
11:35 xstill vypadá to, že se mu podařilo mít zároveň invalid read i write adresu v memmove
11:35 xstill (nepřekrývají se, write je toto, read je někde úplně mimo)
11:37 xstill podstatná část valgrindu by měla být tu: http://pastebin.dqd.cz/Bxxh/
11:37 xstill je to těžce divný
11:38 xstill tohle je release build
11:38 mornfall jakože nic nic nic a pak tohle?
11:39 xstill debug spadne taky, bez assertu
11:39 xstill no na začátku jsou nějaká ta uninitialized value v hashsetu co jsi tuším říkal, že nevíš jak opravit, ale to je úplně na začátku prohledávání
11:40 xstill ještě teda můžu zkusit debug ve valgrindu, ale to poběží tak hodinu počítám
11:40 mornfall no, pomoct by to mohlo
11:41 xstill zkusím, ale v gdb ani debug nemá rozumný stacktrace
11:41 xstill zas ve valgrindu má i ten release, takže by to mohlo pomoct
11:42 xstill jak vůbec můžeme mít rwx segment?
11:46 mornfall to mohlo trefit do nějakýho náhodnýho co přišel kdoví odkud
11:53 xstill hm, debug ve valgrindu vygeneroval za 3.5 minuty jeden stav…
11:55 xstill a čas teda taky ve valgrindu utíká zvláštně mám podezření
11:58 mornfall no, to updatovací vlákno nějak moc neběží ve valgrind
11:59 mornfall valgrindu
11:59 mornfall progressovací*
12:00 xstill už to začalo něco trochu dělat
12:21 mornfall to je nějaký zakletý
12:23 mornfall aha, ale já už vim proč
12:24 mornfall backtrace ve verify funguje proto, že ten aktivní frame faultujícího threadu je parametr fault handleru
12:24 mornfall takže to vykope odtama
12:27 yaqwsx joined #divine
12:34 xstill hm, ale ten gdb server ve valgrindu není úplně marnej
12:35 mornfall yaqwsx: ten erase jednoho prvku ze SortedStorage asi nefunguje co? :)
12:35 xstill do hasheru se n2jak dostal objekt velikosti -5
12:35 mornfall bool remove { if ( něco ) return; ... }
12:35 mornfall (to je ještě jiná metoda)
12:36 mornfall to je skoro na zapnutí -Werror aj v runtime ;-)
12:36 xstill mornfall: to jsem chtěl, ale zatím to blije fakt hodně warningů (u sebe mám zapnuté -Wextra -Wall)
12:37 xstill dokonce to mám zarecordované
12:38 xstill aha tak asi ne
12:38 xstill mám tu trochu bordel
12:52 yaqwsx mornfall: Nefunguje? Podívám se na to
12:52 mornfall yaqwsx: no, já už ji smazal
12:52 mornfall yaqwsx: on to nikdo nepoužíval
12:53 yaqwsx Ani killthread?
12:54 mornfall to používá remove podle tid-u
12:56 mornfall verify nemá moc rádo faulty v bootu
12:56 mornfall tak se zdá
12:59 yaqwsx mornfall: Uh, to jsem musel napsat, když jsem asi napůl spal... To fakt fungovat nemohlo :D
13:25 xstill mornfall: v /home/xstill/DIVINE/sym je ten -Wall v runtime (+ kompilace těch věcí co přidal Heňo, ale to by nemělo ničemu vadit)
13:47 xstill hm, ten bug už mě štve, podle valgrindu a gdb v release jsem našel, že CowHeap::ObjHasher::hash volá update na hash se zápornou délkou (heap.hpp:627), ale když tam přidám asserty, tak to v debugu přestane padat…
13:48 mornfall a pouštíš to s --threads 1?
13:48 xstill jj
13:48 xstill pouštím to pořád stejně, než jsem přidal ty asserty tak to padalo
13:49 xstill zas pokud je ještě k tomu zkorupovanej zásobník tak to i může nastat
13:49 xstill že se to tím assertem spraví nějak, i když je to divný
13:50 xstill blbý je, že v tom release nevidím moc proměnných
13:53 mornfall jak může být sizeof struktury 0
13:53 xstill kde? to by nemělo být možný
13:53 mornfall v diosu :)
13:53 mornfall T* obj = static_cast< T * >( __vm_obj_make( sizeof( T ) ) );
13:53 mornfall call @_ZN6__dios7ContextC2Ev %02
13:53 mornfall %01 = call @__vm_obj_make [i32 0 d]                       # [const* 0 0 uu]
13:53 mornfall T: FAULT: invalid size 0 passed to __vm_obj_make
13:54 xstill není T = void?
13:54 mornfall není
13:54 mornfall je to struktura s nula dlouhým polem
13:54 xstill a ničím jiným?
13:55 mornfall a ničím jiným
13:55 xstill ono 0 dlouhý pole zrovna není ve standardu, takže kdo ví jak si to v GCC vymysleli, dává smysl, že pokud není samo tak je velké 0
13:56 xstill takže je možné, že je prostě velké 0 i pokud je samo…, ač je to teda dost záludný
13:57 xstill ono je totiž asi chtěná vlastnost aby to pole který je na konci T začínalo na sizeof( T ), takže to vlastně dává smysl
14:04 mornfall no, tomu by šlo třeba oponovat tím, že přidáním položky do struktury by se asi neměla zmenšit :D
14:05 mornfall hlavnÄ› v C je to chyba, test.c:3: error: flexible array member in otherwise empty struct
14:05 mornfall v g++ a v clang-u to vyplivne s klidem nulu :)
14:07 xstill ještě je veselý, že tím dokážeš udělat dvě položky struktury na stejný adrese
14:08 xstill http://pastebin.dqd.cz/bHtf/
14:08 xstill tohle se přeloží bez warningu s -Wall -Wextra (!)
14:08 xstill clangem i gcc
14:09 mornfall díra do systému
14:10 mornfall (a jinak je to teda C99, není to gcc-specific)
14:10 xstill dokonce to jde naprat kamkoli do struktury, ne jen na konec
14:10 xstill aha, já myslel, že je to GNU, tak tím víc mě překvapuje jak divně se to chová
14:12 mornfall nicméně se zdá, že se to nedostalo do žádnýho C++ (ani 17)
14:14 mornfall sláva, backtrace $state funguje
14:16 mornfall a navíc jsem dios-u ušetřil meziobjekt kterej obsahoval jen konstatní ukazatel :)
14:19 xstill :-)
14:53 xstill hm, podmíněný breakpointy jsou mega drahý v gdb
15:36 mornfall tys to zaklel
15:36 mornfall [ 0:04] searching: 25 states and 26 edges found in 0:01, averaging 16.4 states/s    /home/mornfall/src/divine/next/test/lib/verify: line 6: 88568 Segmentation fault      (core dumped) divine verify --threads 1 --max-backtrace-depth 65536 $opts "$1"
15:36 mornfall (fs-other-07.valid.c)
16:04 mornfall hm, ninja explain: output llvm/lib/TableGen/CMakeFiles/LLVMTableGen.dir/TGLexer.cpp.o older than most recent input llvm/include/llvm/Config/config.h (1478961703 vs 1478966383)
16:04 mornfall tohle asi vede na komplet rebuild
16:06 mornfall skoro bych řekl že to bude fakt libz
16:09 mornfall xstill: taky mi to zesegvilo v memcpy uvnitÅ™ jenkinse
16:09 mornfall xstill: a po rebuildu ten segv zmizel
16:12 mornfall (nicméně zmizelo to po rebuildu jen kousku divinu, ne celýho llvm)
16:18 mornfall xstill: takže jestli máš ještě build kterej padá na tom velkým příkladu, možná to padne aj na tom fs-other-07...
16:19 mornfall this=0, hm
16:19 mornfall jenže samozřejmě backtrace mám jen z release buildu
18:00 yaqwsx mornfall: Podporujeme DIVINE na BigEndian platformách?
18:05 mornfall yaqwsx: no, nemáme to na čem testovat, takže moc ne
18:06 yaqwsx Jde mi o přepakování statu, předpokládám správně, že celá VM jede little endian?
18:06 mornfall ne, VM jede ve stejné endianitě jako host
18:06 mornfall jinak by aritmetika byla sakra drahá
18:07 yaqwsx Ok, takže tedy nemá cenu stat přebalovat na little endian, ale nechat ho v hostovi.
18:07 mornfall ne že nemá cenu, bylo by to přímo kontraproduktivní :-)
18:08 yaqwsx Díky za info.
19:27 xstill to je skoro divný, jsem ten debug několikrát přebuldil (ale jen DIVINE, ne LLVM)
19:29 xstill super, teď mi to triglo rebuild LLVM
19:30 xstill už mě to fakt nebaví…
19:31 xstill a teď jsem si ještě k tomu sežral paměť
19:34 xstill ještě jsem teda zjistil, že ani run moc nedává velký měněný objekty na haldě, což mě docela překvapilo (test brick-hash, už mi to tu běží asi 4 hodiny a nic). To že verify na tom sežere paměť pěkně rychle není až tak divný…
19:34 mornfall přijde mi dost pravděpodobný že ty rebuildy jsou tím libz
19:35 xstill jen nechápu jak se může někdy najít a někdy ne…
19:37 mornfall xstill: a nemůže to být tím, že se přepne LLVM_ENABLE_ZLIB?
19:38 mornfall asi spíš ne, je to ON a nikde se s tím nehýbe (aspoň co vidim)
19:39 xstill hm, to by skoro stálo za to vypnout, ne? Má to nějaký nevýhody?
19:39 xstill (vypnout to)
19:39 mornfall nevim, u sebe jsem to právě vypnul
19:39 mornfall tak zjistím co se stane
19:41 mornfall no, v první řadě to rebuilduje celý LLVM :)
19:41 xstill to není tak divný
19:42 xstill já mám nicméně teď zase build kde to padlo na -Werror
19:43 mornfall hm, ale ono to asi nebude tím, protoe ten rebuild se nějak zredukoval
19:44 mornfall jakože postupně kleslo číslo za /, vypadá to že to spíš jen relinkovalo
19:46 mornfall hm, ono to HAVE_ZLIB_H 1 totiž v config.h zůstalo... tak teď nevim
19:46 mornfall ale ne, tam je obojí (LLVM_ENABLE_ZLIB je dál)
19:48 mornfall nicméně změna v config.h víceméně jen regeneruje .inc a relinkuje
19:49 mornfall začne to sice s 1200 úlohama, ale postupně se to zredukuje na 770 a všechno je to rychle
19:49 mornfall takže zlib možná přeskakuje, ale netrigne full rebuild
19:51 xstill heh, mě se nějak podařilo zacyklit cmake
19:55 xstill a ještě k tomu se tomu nějak podařilo se nakonfigurovat na make místo ninja, to už fakt nedává smysl
20:38 xstill nicméně to segví dál
20:38 xstill (po komplet rebuildu)
20:39 xstill ale ten fs test mi nepadá
20:40 yaqwsx Existuje v STL identita?
20:44 mornfall jako []( auto x ) { return x; }?
20:44 yaqwsx ano, ale abych to nemusel vypisovat. Něco jako std::id
20:44 yaqwsx Ale hádám, že není.
20:44 mornfall to bys musel psát jako std::id< typ >
20:44 mornfall kdyby to existovalo :)
20:45 xstill no ne, jen by to musel být objekt a ne funkce
20:45 xstill struct Id { template< typename T > T operator()( T x ) { return x; } } id;
20:46 xstill ale pokud vím tak to neexistuje
20:55 mornfall xstill: z nějakýho důvodu max, min a podobně takhle udělaný nejsou
20:55 mornfall nevim jak moc by to šlo třeba volat v constexpr pak
21:06 xstill tak mít to jako funkce má taky svý výhody, třeba to můžeš předat jako pointr (&std::max< int >), což objekt jako pointr na funkci nepředáš, obvzlášť pak šablonovanej operátor ()
21:07 xstill a takový ty věci typu std::less už teď maj variantu, která funguje takhle
21:07 xstill std::less<> tuším
21:07 yaqwsx Nemáte nějaké nápady, proč mi segví DIVINE při návratu z funkce, když volá destruktor vectoru? *** Error in `./divined': free(): invalid next size (fast): 0x00000000020eb2f0 ***
21:07 xstill valgrind?
21:14 yaqwsx Na ten se už také dívám, ale zatím z něj nejsem moudrý. Je to něco hodně divokého...
21:17 xstill yaqwsx: pošli
21:18 xstill nějak se nám to těžce rozpadá
21:18 mornfall ále
21:19 yaqwsx Vyřešeno. Fakt hloupá chyba. To, jestli se jedná o symlink se nepozná jako stat->st_mode & S_IFLINK, ale jako ( stat->st_mode & S_IFMT ) == S_IFLNK
21:21 xstill nebo ještě líp jako S_ISLNK( stat->st_mode )
21:21 xstill viz man 2 stat
21:22 yaqwsx Eh, hezké. Dík
21:37 divine-buildbot Hey! build divine-next-debug #62 is complete: Success [finished]
21:44 yaqwsx Nevíte, proč brick::fs::splitPath zavolané na název adresáře bez koncového "/", vrací cestu o 1 prvek delší, pričemž poslední prvek obsahuje byty "64:72:74:5f:64:65:76"?
21:45 mornfall to bude asi bug :-)
21:46 xstill to nevypadá úplně jako náhodné bajty
21:46 yaqwsx A vždy jsou stejné.
21:48 mornfall xstill: já to pochopil jako že to je 7 bajtů, ne ascii řetězec
21:48 mornfall nebo možná jen nevidim ten vzor
21:49 yaqwsx Hm, asi jsem na něco kápnul...
21:49 xstill no, map chr [0x64,0x72,0x74,0x5f,0x64,0x65,0x76] ~> "drt_dev"
21:49 mornfall lol, ok
21:50 yaqwsx Ano, poslal jsem špatný výstup (stydím se) - ten správný.
21:53 yaqwsx Eh, to je tak, když si člověk poplete písmenka p a o...
21:53 xstill co?
21:53 yaqwsx V kódu jsem si popletl p s o, změnil se význam proměnné a proto se tam objevoval nějaký bordel.
21:55 xstill aha
21:59 mornfall no, umím vyrobit breakpoint na soubor:řádek, ale ještě neumím kontrolovat jestli je smysluplnej, ani řešit suffixy cest a podobně
21:59 mornfall pokračování zítra...
22:01 yaqwsx Ok, než zmizíš, mám jeden dotaz. Proč se v bricksu přebírají všechny cesty kopií a ne konstantní referencí?
22:01 yaqwsx *cesta = std::string
22:37 mornfall yaqwsx: nevím, jaké cesty?
22:38 mornfall asi se počítá že se to typicky zainlinuje a bude to jedno
22:39 mornfall navíc se s cestama nic moc kritickýho nedělá, ale pokud máš pocit že to pomůže tak z toho asi klidně vyrob const &
23:07 yaqwsx Ok. U mě je tedy patch, který přídává zachytávání filesystemu.
23:25 xstill_ joined #divine
23:31 divine-buildbot joined #divine

| Channels | #divine index | Today | | Search | Google Search | Plain-Text | summary