Bug 27274 - stop_udm_cli_server schlägt fehl
stop_udm_cli_server schlägt fehl
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: univention-lib
UCS 3.0
Other Linux
: P5 normal (vote)
: UCS 3.0-2
Assigned To: Andreas Büsching
Jürgen Kahrs
: interim-1
Depends on:
Blocks: 27275
  Show dependency treegraph
 
Reported: 2012-05-24 11:30 CEST by Andreas Büsching
Modified: 2012-07-20 15:24 CEST (History)
1 user (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andreas Büsching univentionstaff 2012-05-24 11:30:00 CEST
In einem postist habe ich die Funktion stop_udm_cli_server verwendet. Allerdings lief danach manchmal noch ein cli-server. Das Grund scheint zu sein, dass die Shell hier versucht den shell-builtin kill zu verwenden, der mit der Option -SIGTERM nicht umgehen kann:

kill all running univention-cli-server
+ echo Define variables
Define variables
+ local pids signal=SIGTERM
+ echo Read pids
Read pids
+ pgrep -f /usr/bin/python.* /usr/share/univention-directory-manager-tools/univention-cli-server
+ pids=4809
+ echo Try to kill
Try to kill
+ type kill
kill is a shell builtin
+ which kill
/bin/kill
+ kill -SIGTERM 4809
kill: 1: Illegal option -S
+ echo Finished
Finished
+ set +x
Comment 1 Andreas Büsching univentionstaff 2012-05-24 11:58:13 CEST
Das ist korrigiert. ChangeLog-Eintrag wurde ergänzt
Comment 2 Jürgen Kahrs univentionstaff 2012-06-14 13:21:59 CEST
Das Kommando kill erwartet (nach POSIX) grundsätzlich eine Zahl als Argument und keinen symbolischen Namen.

  kill -15 1234

Die Ursache für den Bug war die Übergabe eines symbolischen Namens statt einer Zahl. Symbolische Namen sind in neueren Versionen der Unix shell aber durchaus erlaubt, wenn man die Option -s benutzt.

  http://pubs.opengroup.org/onlinepubs/9699919799/utilities/kill.html

  kill -s TERM 1234

Die korrigierte Funktion stop_udm_cli_server im script shell/base.sh funktioniert auf meiner VM nun tatsächlich und man könnte es so lassen (dies ist mein erster Bug in der QA-Rolle und ich will mich nicht zu schnell unbeliebt machen). Es wäre aber besser, wenn wir nach Unix shell vorgehen und explizit mit -s arbeiten, anstatt uns darauf zu verlassen, dass die installierte Version von /bin/kill auch ohne -s symbolische Namen versteht.
Comment 3 Andreas Büsching univentionstaff 2012-06-14 14:24:18 CEST
(In reply to comment #2)
> Das Kommando kill erwartet (nach POSIX) grundsätzlich eine Zahl als Argument
> und keinen symbolischen Namen.

Wie wir gerade besprochen haben ist das verwendete Kommando POSIX kompatibel und ist somit korrekt:

-signal_name
  Equivalent to -s signal_name.
Comment 4 Jürgen Kahrs univentionstaff 2012-06-14 14:47:44 CEST
Andreas hat recht, es ist in diesem script besser explizit /bin/kill aufzurufen, um sicherzugehen, dass auch tatsächlich das kill-Kommando von Unix benutzt wird und nicht eine andere kill-Funktionalität, die erst zur Laufzeit des scripts aufgelöst wird. Auch die Verwendung von "kill -SIGTERM" ist dann im Kontext unseres aktuell vorhandenen /bin/kill eindeutig und sicher.

Je ein Eintrag im debian/changelog und im Handbuch changelog sind vorhanden.
Comment 5 Stefan Gohmann univentionstaff 2012-07-20 15:24:21 CEST
UCS 3.0-2 has been released: 
  http://forum.univention.de/viewtopic.php?f=54&t=1905

If this error occurs again, please use "Clone This Bug".