Da În mar., 2 apr. 2019 la 00:50, Paul-Stelian Olaru < [email protected]> a scris:
> Deci ideea e să rămână un capăt de scriere deschis (chit că în procesul > copil în cazul modului „r” | I hate auto-quoting in my mail client). EOF va > fi raportat la capătul de citire doar când acel capăt a fost închis și > bufferele interne ale sistemului de operare au fost epuizate. Procesul > părinte păstrează unul din capete, procesul copil celălalt. A fi două > capete deschise într-un proces trebuie să fie doar o stare tranzientă. > > > > Ai folosit chestia aia să nu fie moștenibil capătul care trebuie să rămână > în părinte nu? > > > > Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for > Windows 10 > > > > *From: *Ionuț Mihalache <[email protected]> > *Sent: *Tuesday, April 2, 2019 12:46 AM > *To: *Paul Olaru <[email protected]> > *Cc: *Adrian Șendroiu <[email protected]>; Sisteme de Operare > <[email protected]> > *Subject: *Re: [so] [SO][Tema2][General | Windows] Probleme? > > > > Bun, atunci cred că am găsit problema să zic. Eu închideam capul de > scriere respectiv de citire în părinte imediat ce cream procesul copil. Cel > mai probabil prin schimbarea de context câteodată părintele ajungea să > închidă acel cap de scriere respectiv de citire și atunci pipe-ul devenea > inutilizabil. Însă revin la indicațiile pe care mi le-a dat Adrian. Dacă nu > las sleep nu merge orice aș face. Bănuiesc că sleep trebuie să fie pentru > ca testul să funcționeze corect, nu? > > > > În mar., 2 apr. 2019 la 00:32, Paul Olaru <[email protected]> > a scris: > > Sistemul de operare nu trebuie să raporteze EOF la capătul de citire atâta > timp cât există un capăt de scriere deschis. Că e Windows, că e Linux. > > > > On Tue, Apr 2, 2019, 00:30 Ionuț Mihalache <[email protected]> wrote: > > Păi dacă procesul copil nu apucă să scrie cu type pe pipe procesul părinte > nu-l vede ca fiind gol chiar dacă procesul copil mai are de scris și a fost > scos de pe procesor? Încă nu exclud posibilitatea ca eu să am un bug în cod > însă am comentat toate liniile unde verific dacă s-a ajuns la EOF, practic > testul ar trebui să cicleze însă tot primesc aceeași eroare. Eu chiar nu > cred că este ceva din codul meu pentru că sunt câteva linii și nu au o > logică dubioasă. Dacă las acel sleep merge pentru așa cum este și în > comentariu în test este nevoie de el pentru ca procesul copil să poate > scrie datele pe pipe. Nu există șansa ca eu să fi avut ghinion și pur și > simplu să fi trimis tema fix când vmchecker a început să fie problematic. > Eu sunt destul de sigur că problema este de la preemptare nu de la mine. > > > > În lun., 1 apr. 2019 la 23:30, Adrian Șendroiu <[email protected]> a > scris: > > Da, ideea este că la tine se ajunge în pclose prea repede și se > închide pipe-ul în timp ce type încă încearcă să mai scrie în el, de > unde și eroarea cu "The process tried to write to a nonexistent pipe". > > N-ar trebui să se întâmple asta pentru că testul face > while(!so_feof(f)) și apoi pclose. Deci înseamnă că cumva so_feof > raportează EOF mai devreme decât trebuie. > > On Mon, 1 Apr 2019 at 22:52, Ionuț Mihalache <[email protected]> wrote: > > > > Din ce am citit aici [1] problema ar fi de la modul cum functioneaza > type. > > > > Am incercat sa ma uit pe cod sa vad daca exista vreun bug ciudat si > chiar nu vad ce ar putea fi. Problema mea este ca 'The process tried to > write to a nonexistent pipe.' insa testul face fread. Singura scriere este > generata de comanda type din test si de asta zic eu ca ar crapa programul > cateodata nefiind neaparat problema la codul scris de mine, dar ma mai uit > insa chiar nu mai stiu la ce ca sa identific problema. > > > > [1] - > https://stackoverflow.com/questions/40066965/my-c-sharp-program-gives-an-error-the-process-tried-to-write-to-a-nonexistent-p?rq=1 > > > > În lun., 1 apr. 2019 la 19:58, Adrian Șendroiu <[email protected]> > a scris: > >> > >> Nu, e suficient. Dar vezi să nu ai alt bug sau ceva, pentru că dacă > >> rulezi cum zic eu îți crapă programul. > >> > >> On Mon, 1 Apr 2019 at 18:59, Ionuț Mihalache <[email protected]> > wrote: > >> > > >> > Pentru a verifica dacă s-a ajuns la eof verific în fread dacă > ReadFile a întors FALSE și apoi getlasterror și ies dacă este acea eroare > din enunț, ar trebui să mai fac ceva? > >> > > >> > lun., 1 apr. 2019, 18:52 Adrian Șendroiu <[email protected]> a > scris: > >> >> > >> >> Salut, > >> >> > >> >> Cred că ai o problemă cu semnalizarea EOF-ului. > >> >> > >> >> Încearcă următoarea chestie: în test_popen_read.c comentează acel > >> >> "Sleep(2000)", precum și linia "FAIL_IF(num_ReadFile != > >> >> expected_sys_read...". > >> >> > >> >> În cazul ăsta o să-ți dea eroarea respectivă la fiecare rulare. > >> >> > >> >> On Sun, 31 Mar 2019 at 09:11, Paul Olaru < > [email protected]> wrote: > >> >> > > >> >> > La testul 32, pot fi chestii de scheduler. Cred că ar fi > importantă de fapt ordinea (la "r" aștepți și după închizi, la "w" închizi > și după aștepți). Nici eu nu am implementat asta tbh. Dar și la "aștepți și > după închizi" sunt neajunsuri. > >> >> > > >> >> > Sunt surprins că pe Linux reușește checkerul să preia el toate > datele înainte de a apela pclose. > >> >> > > >> >> > On Sun, Mar 31, 2019, 02:05 Ionuț Mihalache via so < > [email protected]> wrote: > >> >> >> > >> >> >> Și acum a mers. Arhiva este aceeași. > >> >> >> > >> >> >> În dum., 31 mar. 2019 la 02:02, Ionuț Mihalache < > [email protected]> a scris: > >> >> >>> > >> >> >>> Salut, > >> >> >>> > >> >> >>> Iar mi-a apărut eroarea asta „The process tried to write to a > nonexistent” pipe. la testul 32. O să trimit iarăși însă mi se pare ciudat > pentru că am rulat pe mașina virtuală de 10 ori la rând și nu am avut > eroarea asta. > >> >> >>> > >> >> >>> În sâm., 30 mar. 2019 la 19:04, Adrian Șendroiu < > [email protected]> a scris: > >> >> >>>> > >> >> >>>> Salut, > >> >> >>>> > >> >> >>>> M-am uitat și pare ok. O fi fost de la vmchecker. > >> >> >>>> > >> >> >>>> On Sat, 30 Mar 2019 at 18:15, Ionuț Mihalache via so > >> >> >>>> <[email protected]> wrote: > >> >> >>>> > > >> >> >>>> > Salut, > >> >> >>>> > > >> >> >>>> > Am trimis pentru prima dată tema2 pe windows și părea că a > intrat în buclă infinită la testul 20. După ce am mai trimis încă o dată la > penultimul test am primit eroare cu non-existing pipe. După am mai trimis > încă de 3 ori și de fiecare dată am primit 95/95. Este posibil să fie ceva > de la vmchecker sau să mă mai uit pe cod să văd dacă am niște bug-uri care > apar mai rar? > >> >> >>>> > _______________________________________________ > >> >> >>>> > http://ocw.cs.pub.ro/courses/so/info/lista-discutii > >> >> >> > >> >> >> _______________________________________________ > >> >> >> http://ocw.cs.pub.ro/courses/so/info/lista-discutii > > >
_______________________________________________ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
