[so] [Tema 2 Linux] Checker

Radu PAŞEA radu.pasea at cti.pub.ro
Mon Apr 2 20:16:44 EEST 2012


Ok, eu am reusit sa gasesc problema.
Cand citeam de pe coada gateway, citeam cu dimensiunea default a mq_msgsize, adica 4096 si imi dadea invalid attribute, chiar daca eu facusem coada cu acea dimensiune. Nu prea imi dau seama de ce nu mergea, dar solutia a fost un mq_getattr inainte.

Sper sa ajute si altcuiva cele 2 ore de debugging pe care le-am petrecut in 6 terminale :)

________________________________
From: so-bounces at cursuri.cs.pub.ro [so-bounces at cursuri.cs.pub.ro] on behalf of Radu PAŞEA [radu.pasea at cti.pub.ro]
Sent: Monday, April 02, 2012 6:36 PM
To: Sisteme de Operare
Subject: Re: [so] [Tema 2 Linux] Checker

    Si eu am problema asta, nu porneste checker-ul. De fapt, uitandu-ma cu ps, checker-ul pare sa nu porneasca gateway-ul.
    Astept raspuns.

    Radu
________________________________
From: so-bounces at cursuri.cs.pub.ro [so-bounces at cursuri.cs.pub.ro] on behalf of Bogdan Stirbat [bogdan.stirbat at gmail.com]
Sent: Wednesday, March 28, 2012 2:26 AM
To: so at cursuri.cs.pub.ro
Subject: [so] [Tema 2 Linux] Checker

Buna seara,


    Am o problema cu checker-ul de pe Linux. De cele mai multe ori se blocheaza, alteori se blocheaza dupa ce a rulat cateva teste. Cel putin o data, checker-ul a rulat toate testele fara sa se blocheze.  Uneori afiseaza mesajul "(client.c, 104): mq_open: Cannot allocate memory". Inainte de a rula checkerul, sterg orice resurse partajate pe care le-ar putea folosi checker-ul (/mnt/cozi/gateway etc).

   Am rulat fiecare test separat, si fie se blocheaza checkerul, fie testul respectiv se termina cu succes. Am testat mecanismul de decriptare si manual. Am pornit pe rand: serverul (toate cele 4 instante), gateway-ul, si clientul de mai multe ori (ultima rulare a clientului a fost: ./client exit exit -1). Dupa ce fiecare proces din acest mecanism se termina, toate resursele partajate (semafoare, cozi de mesaje) sunt eliberate.

   Presupun ca checkerul se blocheaza din cauza comunicatiei pe coada de mesaje "gateway". Am scris gateway-ul considerand ca trebuie sa creeze coada "gateway", si la sfarsit s-o distruga. Daca gateway-ul o deschide, dimensiunea fiecarui mesaj este sizeof(message_t). Am luat in calcul si situatia in care clientul creaza coada "gateway", caz in care dimensiunea unui mesaj ar fi mult mai mare. Am tratat acest caz atunci cand gateway-ul primeste un mesaj de la client (in acest caz, mesajul trebuie primit intr-un buffer mai mare). Dar n-am scapat de problema.

  Imi puteti da, va rog, un hint?


Multumesc,
    Bogdan Stirbat
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20120402/a10bf29e/attachment.htm>


More information about the so mailing list