[so] [Tema2][lin] Eroare mq_open

Vicentiu Ciorbaru cvicentiu at gmail.com
Sun Apr 7 16:21:54 EEST 2013


Buna,

M-am lovit si eu de problema asta. Aparent daca nu dai mq_unlink nu se
considera ca ai inchis o coada. Din ce am observat eu, daca ai folosit
un mq_open de 8 ori, mq_close doar elibereaza file descriptor-ul, dar
nu iti permite sa mai deschizi alta coada, decat daca dai mq_unlink.

Ca sa testez, deschideam 4 * numar procese cozi in mpirun si dupa ce
deschideam o coada o si inchideam cu mq_close. Dupa cum era de
asteptat, mereu se folosea file descriptor-ul 3, (0 1 si 2 fiind
ocupate cu standard streams), dar dupa a 8-a deschidere, a 9-a crapa.

Cam asta am identificat ca ar fi problema. Cum poate fi rezolvat,
pastrand ideea cu n cozi per proces nu pot sa spun.

Vicentiu

2013/4/7 Mariana Mărășoiu <mariana.marasoiu at gmail.com>:
> Buna!
>
> Am si eu o problema la folosirea mq_open. Eu deschid pentru fiecare nod o
> coada de mesaje catre celelalte (n-1) noduri, precum si creez o coada de
> mesaje pentru nodul propriu de unde sa-si poata citi mesajele. Asta ar
> insemna ca am deschise intr-un proces n cozi, iar pentru toate procesele, un
> total n^2. Pentru ultimele 2 teste (cu 6 si 8 noduri) eroarea:
>
> mq_open: Too many open files
>
> M-am documentat pe internet, si eroarea ar insemna ca am prea multe
> fisiere/cozi deschise, mai multe decat valoarea din
> /proc/sys/fs/mqueue/queues_max (care pe calculatorul meu este 256). Dar cum
> eu deschid maxim 8 cozi per proces, nu vad cum se poate depasi maximul
> asta...
>
> Pentru primele teste merge fara probleme. Am pus si pe vmchecker, dar nici
> acolo nu trec ultimele teste si nu pot sa deduc decat ca e aceeasi problema.
> Am incercat de asemenea sa deschid cozile de mesaje pentru send atunci cand
> am nevoie de ele, si sa le inchid atunci cand termin de trimis un mesaj, dar
> nici asta nu a rezolvat problema, ba chiar acum pica si teste simple.
>
> Are cineva idee care ar fi cauza?
>
> Multumesc anticipat,
> Mariana
>
>
> _______________________________________________
> http://ocw.cs.pub.ro/courses/so/info/lista-discutii


More information about the so mailing list