/srv/irclogs.ubuntu.com/2006/11/14/#upstart.txt

=== wasabi_ [n=wasabi@ubuntu/member/wasabi] has joined #upstart
=== mbiebl [n=michael@e180125108.adsl.alicedsl.de] has joined #upstart
=== Amaranth_ [n=travis@ubuntu/member/amaranth] has joined #upstart
=== Amaranth_ is now known as Amaranth
=== mbiebl [n=michael@e180125108.adsl.alicedsl.de] has joined #upstart
=== wasabi_ [n=wasabi@ubuntu/member/wasabi] has joined #upstart
!alindeman:*! Regional server split, looking into it02:15
=== Amaranth [n=travis@ubuntu/member/amaranth] has joined #upstart
=== j_ack [n=rudi@p508DA28C.dip0.t-ipconnect.de] has joined #upstart
=== wasabi_ [n=wasabi@ubuntu/member/wasabi] has joined #upstart
=== Amaranth [n=travis@ubuntu/member/amaranth] has joined #upstart
=== j_ack_ [n=rudi@p508D92D5.dip0.t-ipconnect.de] has joined #upstart
=== j_ack__ [n=rudi@p508D897B.dip0.t-ipconnect.de] has joined #upstart
=== Keybuk [i=scott@conference/canonical/x-20ecf65e61c799f5] has joined #upstart
=== wasabi_ [n=wasabi@ubuntu/member/wasabi] has joined #upstart
=== yankees26 [n=james@ool-43575023.dyn.optonline.net] has left #upstart []
=== mbiebl [n=michael@e180085146.adsl.alicedsl.de] has joined #upstart
=== wasabi__ [n=wasabi@cpe-76-184-95-8.tx.res.rr.com] has joined #upstart
=== johnnybuoy [n=johnny@unaffiliated/johnnybuoy] has joined #upstart
=== Md [i=md@freenode/staff/md] has joined #upstart
=== mbiebl [n=michael@e180104034.adsl.alicedsl.de] has joined #upstart
=== fx|RabBit [n=rabbit@cm166-191.liwest.at] has joined #upstart
fx|RabBithmm.. hi03:32
=== cortana [n=sam@62-31-146-25.cable.ubr12.azte.blueyonder.co.uk] has joined #upstart
=== Keybuk [i=scott@conference/canonical/x-04efab55d890e8b0] has joined #upstart
=== j_ack [n=rudi@p508DB593.dip0.t-ipconnect.de] has joined #upstart
wasabiRandom knowledge from Windows: Windows Services are .exe files which use a messaging API to the service host. The service host does the normal respawn stuff, but it can also detect when the service "fails to start". It does so because when the service is successfully started, it should send a message.07:13
wasabiAnd after a timeout, it hasn't yet happened. The API lets the service "request more time".07:13
wasabiInteresting concept.07:13
wasabiThis allows the GUI to act a bit more reasonably... it can basically say "Starting...", and only remove the box when everything is in fact properlly started.07:16
wasabiWe can do the same with creative uses of post-start though.07:16
=== cortana [n=sam@62-31-146-25.cable.ubr12.azte.blueyonder.co.uk] has joined #upstart
=== mbiebl [n=michael@e180104034.adsl.alicedsl.de] has joined #upstart
=== phsdv [n=paul@83.156.71.133] has joined #upstart
myrenits a watchdog timer08:11
myrenping the system to make sure its responsive08:11
myrenif you dont get a ping back, assume the worst08:11
myrenhow would you do that with post-start?08:11
myrenyou'd need to ddo a dbus ping or something08:11
myreni cant think of how else you'd query/ping08:11
Keybukwasabi: launchd uses a similar system08:23
KeybukI was talking to the Nokia guys about having some kind of upstart/service communication as well08:23
wasabimyren: Well, post-start is up to the service to implement however it feels like it. For apache, it could actually issue a GET.08:24
myrenright08:24
myreni was thinking about just portscanning08:25
myrenlookup the pid in netstat and see if its listening08:25
wasabiSure, it just connect to it to see if it answers.08:26
wasabiAnything.08:26
myrenlaunchd is osx right?08:26
=== myren nods
myrenyup08:26
wasabiMy dislike with having the service talk to upstart itself is one of politics.08:26
wasabiYou'd have to introduce basically a binary dependency to upstart from Apache.08:27
wasabiWhich wouldn't go over so well.08:27
Keybukright08:27
Keybukit's useful in things like the 770 though08:27
wasabiYeah.08:27
wasabiYou also could accomplish the same thing with post-start itself pretty easily.08:28
wasabipost-start would start "apache-watcher" or something, a binary, which could talk to apache however it wanted to.08:28
Keybukright08:28
myrenit makes sense with dbus08:29
myrencheck to see if it has a com.ubuntu.upstart.ping or something08:29
myrenand if it has the service, hit it08:29
myrenno dependencies08:29
wasabiSure, but dbus is itself a dependency most don't want in that place.08:30
Keybukright08:30
myrenwhat, upstart or the app?08:30
wasabiboth.08:30
myrenoh, well then you got nothing08:30
myrenif you dont want to add functionality you wont get functionality08:30
myrenwhich is fine08:30
wasabiI doubt the apache guys want to build in dbus to apache. :008:30
wasabiA helper? Sure.08:30
KeybukI like the optional functionality idea08:30
wasabiBut apache runs on windows too.08:30
myrenbuild yourself a 3 line dbus script08:30
myrenthat it can optionally use08:31
myrenthe real issue is with dbus, there's not a particularly good way to dbus a process by its process id08:31
myreni really think dbus is the way to go here08:31
myrenits the only quasi standard communication system you've got08:31
wasabiYou mean other than unix sockets.08:32
myrena wget ping will help apache and no one else08:32
wasabiHeh.08:32
myrenbut you'd need a ping protocol for unix sockets08:32
wasabiYou'd need the same for dbus.08:32
wasabiAnd a ping protocol is nothing more than a if (!connect())08:32
myrenuh, is that applicable for unix sockets08:32
wasabiEither way, I don't think it needs to be part of upstart prime. Simply dispatching to an external helper imo is hte best.08:33
myrenits definately a great idea08:33
myreni like dbus because its functional08:33
myrenif you ping something08:33
myrenand you get a reply, you can be just about certain its not totally hung08:33
myrenit negotiated itself basically beyond reproach08:34
myrenno ones going to just happen to answer it08:34
myrenunless they mean to08:34
wasabiSillyness08:34
myreni dunno, it seems like a much more contractual garuntee than seeing if a socket is open08:34
myrenthat seems, i dunno, antiquated08:35
wasabi"Seems antiquated" isn't a very compelling argument.08:35
wasabidbus is massively complicated for something in PID1.08:36
myrenas a system wide eventing daemon08:36
myrenit better fucking support dbus08:36
myrenum08:36
myreni'm no one, ps08:36
wasabiIt will, with a proxy.08:36
wasabiUpstart itself uses a plain unix socket.08:36
myreni have absolutely zero say in this project08:36
myrenbut personally i think dbus is the only acceptable IPC08:37
wasabiOn what grounds?08:37
myrenits a protocol08:37
myrenthats it08:37
wasabiHuh?08:37
myrenits not a socket08:37
wasabiYes it is. ;)08:37
myrena protocol defines ways of talking with each other08:37
myrenyou can scream anything and everything into a socket08:38
wasabiDBUS is a very large complicated messaging API, implemented on top of a socket.08:38
myrenwhich is why its useful08:38
myrenits an API for IPC08:38
myrenanyone can open up dbus08:38
wasabiI suspect you have conflicting goals.08:38
myrenand start communicating08:38
myrendiscovering08:38
myreneventing08:38
myrenknowing nothing about hte system08:39
wasabi1: A user space friendly GUI application managing services. DBUS is nice for that.08:39
myrenits a machine to machine communication language08:39
wasabi2: PID 108:39
_ionWe should use XML for IPC! Upstart doesn't have a sufficient amount of enterprise yet.08:39
myrenupstart is not just another pid 1 replacement08:39
wasabiHmm. Yes it is. ;)08:39
myrenit seems to me like the goal is much larger than simply initializing programs08:40
wasabijhaltom@station-1:~$ ls -al /sbin/init08:40
wasabi-rwxr-xr-x 1 root root 57696 2006-10-10 05:42 /sbin/init08:40
myrenthat there's a strong eventing componenet too08:40
wasabijhaltom@station-1:~$ ls -al /usr/lib/libdbus-1.so.3.0.008:40
wasabi-rw-r--r-- 1 root root 195484 2006-10-20 06:46 /usr/lib/libdbus-1.so.3.0.008:40
wasabidbus is almost *4* times larger than upstart.08:40
myrenwhats an order of magnitude or two between friends08:40
wasabiExcluding dependencies of dbus.08:40
myrenok, size asize08:41
myrenaside08:41
myrenpracticality aside08:41
myrenjust for a second08:41
wasabiWhy put it aside? It's are core argument.08:41
wasabiIt's PID1.08:41
myrenbecause its your only reply to everything i say08:41
wasabiIf it crashes, your system turns off.08:41
myrenand you ignore every point i make simply on that ground08:41
myrenjust bear with me for a second08:41
_ionI don't really see moving from 60k to 200k as a problem with any hardware upstart is running on. Oh, and:08:42
_ion-rwxr-xr-x 1 root root 1166796 2006-10-10 17:46 /lib/libc.so.608:42
wasabiSure.08:42
myrensorry work for a second08:43
_ionI don't have a strong opinion either way. I guess dbus is as good protocol for IPC as any.08:43
myrenv. sorry08:43
myrenok back08:43
myrenthe thing is, most pid1's play a passive role in the system08:44
myrenthey launch a bunch of shit and then go to sleep and become obsolete08:44
myrenupstart, to me, signifies very much more of an event based process management system08:44
myrenrather than simply an init script08:44
myreni could be misconstruing the goals, but it seems to be something that continues doing useful work as the system stays up08:45
myrento really effectively do that, it needs to be capable of eventing with other subsystems08:45
myrenit needs IPC08:45
myreni could be totally misconstruing the goals purpose & design here08:45
myrenbut i thought the idea was to make it functionally more complex08:45
myrenthats it08:46
wasabi1) Most inits continue doing useful work, such as switching runlevels, which can be considered "acting on events".08:46
wasabi2) It is currently capable of IPC. It alrady has it.08:46
myrenthats the main stimuli-response i see08:46
wasabi3) The goal of software is never to make it more complex.08:47
myrenno thats your goal08:50
myrenThe current version of Ubuntu, for example, includes sysvinit, atd, crond,08:50
myrenanacron and netkit-inetd; all of which are congured dierently, yet are08:50
myrenarguably performing the same kind of job.08:50
myren                          jobs such as starting and stopping services and run-08:50
myrenning user scripts are also performed by packages such as udev, acpid, apmd,08:51
myrenifupdown and even module-init-tools08:51
myrenyour goal is to replace that with something complex & functional enough to serve as a replacement08:51
myrenupstart is a single replacement for the standard UNIX services, combining their08:51
myrenfunctionality into a single daemon which can be easily congu08:51
myrenme: your goal is to replace that with something complex & functional enough to serve as a replacement08:51
wasabiNo, my goal is to replace it with something functional enough to serve as a replacement, not neccassarily complex.08:51
myreni'll do more real digging into upstart & get back to you08:52
myreni dont really know your functional capabilities yet08:52
myrenjust scares me when codesize is the big bad voodoo monster threat08:52
wasabiI used codesize as a poor example.08:53
wasabiShould have picked a figure to more accurately represent complexity.08:53
myrenand i just hyperbolized rather injurously08:53
wasabiDBUS is complicated. It has all sorts of cool things which are very useful, but few of which are neccassary for a system seemingly requriing only the sending of events and starting of named jobs.08:54
wasabiNot to say we don't want a DBUS API to those, we do.08:54
wasabiJust that it's not likely to be implemented in PID1, but likely as an out of process proxy.08:54
wasabiPersonally I think simply invoking an executable and waiting for a return value ==0 is simplier than introducing DBUS in both init and apache.08:57
wasabiWhich is where all this started.08:57
myrenno i agree with you a lot more now, dbus in upstart proper is a bad idea09:07
myreni need to see how hard it'll be to make a proxy09:08
myrenaka try and make one09:08
=== yankees26 [n=yankees2@ool-182c6007.dyn.optonline.net] has joined #upstart
=== Amaranth [n=travis@ubuntu/member/amaranth] has joined #upstart
=== yankees26 [n=james@ool-182c6007.dyn.optonline.net] has joined #upstart
=== yankees26 [n=james@ool-182c6007.dyn.optonline.net] has joined #upstart

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!