[so] [Linux] [Tema5] Diferenta rulare in teminal Vs checker

Costin Lupu costin.lup at gmail.com
Wed May 24 17:45:32 EEST 2017


On Wed, 2017-05-24 at 17:23 +0300, Costin Lupu wrote:
> On Wed, 2017-05-24 at 12:20 +0300, Andrei Simion-Constantinescu via so
> wrote:
> > Buna ziua,
> > 
> > Am terminat de implementat transmiterea de fisiere statice si intampin
> > umatoarea problema. Daca rulez separat continutul unui test in
> > terminal, descarcarea fisierului are loc cu succes. De exemplu pentru
> > testul 16, ruleze ./aws iar in alt terminal dau comanda: wget -t 1
> > "http://localhost:8888/static/small00.dat" -O small00.dat, transferul
> > fisierului avand loc cu succes. Insa daca rulez ./_test/run_test.sh
> > 16, wget iese cu codul de eroare 4, adica network failure. Nu pot sa
> > imi dau seama ce gresesc, nu stiu ce mai face checkerul in plus in
> > afara executiei comenzii din functia aferenta testului (initializarea
> > mediului nu este reprezentata doar de pornirea server-ului)? Aveti
> > idee care ar putea fi problema?
> 
> Presupun că rulezi './_test/run_test.sh' din directorul checker-ului. Ai
> acolo (link către) executabilul server-ului? Eroare pare să-ți apară din
> cauză că serverul nu e pornit.

Ca diferență, checker-ul lansează serverul în execuție folosind comanda:
$ LD_PRELOAD=_test/sockop_preload.so ./aws

Asta înseamnă că apelurile send/recv/sendfile sunt definite în
biblioteca sockop_preload.so. Deci ar mai fi nevoie să verifici că
folosești apelurile send/recv/sendfile corect (aka verifică ce-ți
returnează).

Pentru debugging de scripturi, în cazul în care vrei să vezi toate
comenzile executate de un shell script, poți folosi opțiunea '-x' a
bash-ului:
$ bash -x ./myscript

Costin



More information about the so mailing list