Kernel: το kill δεν πιάνει αυτο

V13 v13 at priest.com
Wed Dec 4 01:00:01 EET 2002


On Tuesday 03 December 2002 02:17, P. Christeas wrote:

> Υποπτεύομαι[1] οτι γίνεται το παρακάτω:
> η εφαρμογή παίρνει το πρώτο signal και ξεκινάει κανονικά την διαδικασία
> τερματισμού.
> Σε κάποιο system call φτάνει το δεύτερο signal. εκεί κλειδώνει το signal
> delivery του kernel. Το race μοιάζει σαν να περιμένει το system call να
> τελειώσουν τα signals και τα signals να επιστρέψει το system call.
>
> δευτερο σενάριο: να έρχονται τα signals τη στιγμή που η εφαρμογή είναι
> zombie και το kernel να προσπαθεί να της τα δώσει (κρατώντας την ενεργή),
> ενώ δεν υπάρχει εφαρμογή.

 Xoris pareksigisi, alla exeis gnosi ayton poy les ? Ena TERASTIO pososto 
signals lambanontai kata tin diarkeia system calls. Opoiodipote process den 
einai se katastasi Run h Zombie, perimenei kapoio system call na teleiosei. 
Einai praktika adynato na yparxei tetoio bug se kernel poy kykloforise (Esto 
kai dokimastiko).

 Episis, sxedon ola (an oxi ola) ta system calls ta opoia perimenoyn kati, 
diakoptontai apo signals.. Gia ayto kai sxedon ola exoyn san pithano lathos 
to EINTR. Ayta poy den diakoptontai einai kata kanona ayta poy den exoyn 
'kathysterisi' (p.x. shmget())

> Εγώ έχω στείλει αρκετά (5-10 τουλάχιστον) signals, από τα οποία τα πρώτα
> δεν είναι SIGQUIT αλλά SIGINT/TERM. Δηλ. η ουρά των signals έχει στην αρχή
> τα handleable.
> Α, σημαντικό: κατά τον τερματισμό, η εφαρμογή δεν επαναφέρει τους
> κανονικούς signal handlers [2,3]

POS to enoeis ayto ? An h efarmogi termatisei tote den tithetai tetoio thema. 
Ti semantics xrisimopoieis gia toys signal handlers soy ?

>
> Βλέπω μία στιγμή την εφαρμογή stopped, πρίν το πρόβλημα, και μετά την
> ζωντανεύω (run) με SIGCONT. Νομίζω όλες τις φορές που είχα πρόβλημα, είχα
> στείλει τουλάχιστον ένα SIGCONT.

POS tin blepeis stopped? 

>
> Είχα δοκιμάσει να σκοτώσω και το parent process (bash), αλλά πέρασε κι αυτό
> στην uninterruptible κατάσταση που περιγράφω.

POS dokimases na to skotoseis ? Thes na peis oti me kill -9 DEN psofise ? An 
to process einai zombie tote *EINAI* skotomeno. Einai thema toy parent 
process meta na to termatisei entelos. Arnoymai na pistepso oti eixes zombie 
process me parent process to bash ( to opoio bash den exei ginei suspend gia 
kapoio logo).. An nai stele tin eksodo ton:

ps sax
ps -aej
ps -ael

> [2] ο κανονικός handler για το SIGINT είναι το ignore
To default toy SIGINT einai na termatisei to process (man 7 signal)

> [3] δεν προσπαθώ να κάνω καλύτερη την εφαρμογή, προσπαθώ να διορθώσω τον
> kernel εδώ.
Epimeno na diorthoseis tin efarmogi.

<<V13>>



More information about the Linux-greek-users mailing list