/srv/irclogs.ubuntu.com/2005/08/01/#ubuntu-toolchain.txt

=== karlheg [~karlheg@host-250-237.resnet.pdx.edu] has joined #ubuntu-toolchain
fabbionemorning05:44
=== Seveas [~seveas@seveas.demon.nl] has joined #ubuntu-toolchain
=== jbailey [~jbailey@modemcable139.249-203-24.mc.videotron.ca] has joined #ubuntu-toolchain
=== Seveas [~seveas@seveas.demon.nl] has joined #ubuntu-toolchain
=== Seveas [~seveas@seveas.demon.nl] has joined #ubuntu-toolchain
desrtfabbione; gamin issues still/again08:04
fabbionedesrt: such as?08:05
desrtdesktop not showing new files08:05
fabbionedesrt: that's a gamin/nautilus problem08:05
desrtnod.08:05
fabbioneif it works for a while and than stop working, blame userland08:06
desrtah.  gotcha.08:06
fabbioneit's a flow in the way in which gamin handles the "locks" on dirs to monitor08:06
fabbionei told upstream08:06
fabbionehe shitted on me08:06
desrtDV?08:06
fabbioneand i am not going to pick up another discussion with him08:06
fabbionei think so yeahg08:07
fabbioneit has been a while ago08:07
desrthe's really bad at being critisised08:07
fabbionei didn't criticise him08:07
fabbionei explained to him a problem08:07
fabbionewith all the debugging info08:07
desrtbugs reports are critisism :)08:07
fabbionehe didn't care08:07
fabbionethere are no bugs08:07
fabbioneand he did run out of arguments08:07
desrtsigh.08:07
fabbioneso he started complaining about my non-perfect english08:07
desrtmakes you wonder why we all switched from fam08:08
desrtoh crikey08:08
fabbioneand yes, i know my english is not perfect08:08
desrthere's a neat question08:08
desrtwhat is the problem with applications using libnotify themselves, directly?08:08
fabbioneas i told him.. and he suggest to go to a school08:08
desrt*inotify08:08
fabbioneand i suggest him to remove a dildo from his $(where the sun doesn't shine"08:08
fabbionei don't know..08:09
fabbionei didn't even know it existed such a lib08:09
desrtit doesn't.  i made a mistake :)08:09
desrti meant to say "inotify" but said "libnotify" instead08:09
desrthmmmmm08:09
desrtyou gotta figure that almost everything that uses fam uses it via the gnome-vfs08:10
fabbionegamin uses inotify directly08:10
desrtwhich means that you'd just need to add inotify support to gnome-vfs's file method08:10
fabbionethe point is that it does it in a very stupid way08:10
desrtgamin would be cut out of the picture08:10
fabbioneoh yeah08:10
desrtand all of its silly problems would go away automatically08:10
fabbionethat would be awesome08:10
desrt(and hopefully not too many new silly problems are introduced)08:10
desrti'm sufficiently intrigued to attempt this08:11
fabbionedesrt: the main issue with gamin are:08:11
desrti wonder if robert is around08:11
fabbione- it doesn't keep an association table between clients and monitored directories08:11
fabbione- it uses signals even if there is a BIG FAT WARNING TO NOT USE SIGNALS for that kind of thing08:12
fabbioneso it is basically bad designed08:12
fabbioneit is possible to rewrite the code without changing the API08:12
desrtbut why bother?08:12
fabbionebut i really have no interest in doing it08:12
desrti mean.. why gam_server?08:12
desrtthe kernel is the new gam_server ala inotify08:12
fabbionehmm no08:13
desrtand honestly, i trust the kernel to not screw up an awful lot more than i trust the gam_server08:13
fabbionethere is a difference08:13
fabbionebe careful08:13
fabbionethe kernel provide the feature08:13
fabbionebut you need a link layer between the kernel and the clients08:13
fabbioneinotify has not been designed to be used directly by many clients afaik08:13
fabbioneso you need a "collector" or server08:13
desrtwhat else in ubuntu uses libfam other than gnome-vfs?08:13
desrtah08:14
fabbioneapt-cache rdepends libfam ?08:14
desrthm.  that's an odd one.08:14
fabbioneapt-cache rdepends libgamin0 | wc -l08:14
fabbione17408:15
desrtso you think the kernel will start to suffer if it has to notify several clients of updates to a inode?08:15
fabbioneat least 174 pkgs08:15
fabbionethe point is the info dispatcher08:15
fabbioneexample:08:15
fabbioneyou change something in dir foo08:15
fabbionethe kernel sends a notification to gamin08:15
fabbionegamin redistribute it to the clients that are registerd to that dir08:16
fabbionethe last step is clearly not a kernel job08:16
desrti don't understand why it isn't08:16
fabbionethe kernel has no need to know how many clients are monitoring a dir08:16
desrteach client can open inotify for itself08:16
desrtand the kernel can tell all of them08:16
fabbioneyes, that's correct08:16
desrtit actually seems silly to me that we have the indirection at all08:16
fabbionebut the point is that inotify will make the kernel suffer during that operation08:16
desrtit made more sense with dnotify simply because dnotify was such a pain to use08:17
desrthmm08:17
fabbionebecause you are stalling on kernel execution time08:17
fabbionewhen that kind of processing can be done in userland08:17
desrti can't imagine it's worse (or better) than O(n)08:17
desrtplus... we have preempt :)08:18
desrtoh.  inotify is a syscall these days08:29
desrtweird.08:29
desrtthat sort of seems a lot more reasonable....08:30
desrtexcept that i don't know how you poll for a syscall08:30
fabbionecheck how gamin does it08:32
fabbionethe connection between gamin and the kernel is "okish"08:32
fabbionethe issue with gamin is the rest08:32
desrti bet the syscall creates an fd08:32
desrtlike socket()08:32
fabbioneiirc they use sysfs08:33
desrti can just picture the politics08:33
desrt<rml> include inotify in linus kernel!08:33
desrt<linus/andrew/whoever> over my dead body if it uses /dev/inotify.  such a hack!08:33
desrt*weird solution*08:33
fabbioneehehhe08:34
desrtyup.08:35
desrtinotify_init is a new syscall which returns an fd08:35
desrtthen instead of ioctling it you use inotify_add_watch, etc (also new syscalls)08:35
fabbioneyes i saw the syscalls08:35
fabbionewhen backporting inotify from .13-rc08:36
desrtthat's perfect08:36
desrti really like this design08:36
desrtstill lets you use standard poll/read io loop stuff with it08:36
desrtwow.  something fantastically bad just happened08:45
desrtoh.  it's an oops.08:45
fabbionedoko: ping?08:58
fabbionedoko: unping09:00
=== desrt tries to reproduce
desrtsomething has gone terribly wrong inside the inotify code09:00
=== Seveas [~seveas@seveas.demon.nl] has joined #ubuntu-toolchain
desrthttp://bugzilla.ubuntu.com/show_bug.cgi?id=1298709:01
dokofabbione: pong anyway09:02
fabbionedoko: thanks i already solved09:02
fabbionedesrt: NOTABUG09:03
fabbione# define __NR_inotify_init      29109:03
fabbione# define __NR_inotify_add_watch 29209:03
fabbione# define __NR_inotify_rm_watch  29309:03
fabbionewrong syscalls09:03
fabbionekthxbyw09:03
desrtuhm09:03
desrtso userspace calling the wrong syscalls should generate oopses that take out the entire kernel?09:03
fabbioneit is correctly OOPSING to tell you that you are calling the wrong syscall09:04
fabbioneit's not crashing09:04
fabbioneyou need to use the inotify include or whatever defines the syscall09:04
fabbioneno need to redifine them09:04
desrtno... the process goes into uninterruptable sleep09:04
desrtand then anything else that i try to open oopses from then on09:04
desrtat best that's a critical security flaw09:05
fabbionecan you try do a syscall on another kernel that's not inotify related?09:06
fabbionecalling syscall that way is delicate09:06
desrti'm gonna figure out what actual syscall number causes it09:07
desrtbtw: if i do it from the console, the virtual terminal stops working09:07
fabbionethe 3 syscalls you are using are invalid09:07
fabbionethat's as simple as it gets09:07
desrtit seems that whatever i am calling trashes the stdin/out/err/tty of the calling process09:07
desrtit's 29109:08
desrtinotify_rm_watch ...09:10
fabbionewhat arch is that?09:10
desrti38609:10
fabbioneasm/unistd.h:#define __NR_inotify_rm_watch      29109:11
fabbioneasm-i386/unistd.h:#define __NR_inotify_rm_watch 29109:11
desrtnod.09:11
fabbione#define __NR_inotify_init       28909:11
fabbione#define __NR_inotify_add_watch  29009:11
fabbione#define __NR_inotify_rm_watch   29109:11
fabbione#define NR_syscalls 29209:11
desrtso i'm calling inotify_rm_watch as a void function09:11
desrtthe inotify_rm_watch syscall doesn't do proper input validation09:11
desrti really hope this isn't a problem in the upstream kernel......09:12
fabbioneit is probably09:12
desrtok09:12
fabbionecan you try to use another syscall to something completely different?09:12
desrti'm gonna figure out exactly what registers i'm passing it and what's on the stack09:12
fabbioneit can be a flaw in inotify09:12
desrti think it is a flaw in inotify09:12
fabbionealso.. to use syscalls include asm/unistd.h09:13
desrtnod.09:13
fabbioneso you don't need to care about numbering09:13
desrti just copied those out of gamin09:13
fabbioneyou will need kernel includes...09:13
desrti have them.  i was just being lazy09:13
desrt:/09:13
desrtsort of glad i was though.  found a nice bug :P09:13
fabbionedoes the kernel oops with gamin?=09:14
fabbionedebian/patches/sth-fs_inotify.dpatch:+asmlinkage long sys_inotify_rm_watch(int fd, u32 wd)09:14
fabbionedebian/patches/sth-fs_inotify.dpatch:+  int inotify_rm_watch (int fd, __u32 mask);09:14
fabbionedebian/patches/sth-fs_inotify.dpatch:+cond_syscall(sys_inotify_rm_watch);09:14
desrtSYS_291(0, 0xbf993e00, 0x41111d8a, 0x8048438, 0x8049634)09:14
desrt^^ this is the baddy.09:14
fabbioneit's probably easier if i allign the numbers of our kernel09:15
desrtya.. probably09:15
desrtis .13 out yet?09:15
fabbionedesrt: i don't have much time right now09:15
fabbionei will send you a kernel to test09:15
desrtfabbione; it's ok.  i'm gonna download and build a vanilla kernel09:15
desrtoh.  ok.09:15
fabbione.13 is not out yet09:15
desrtwell, i'll try vanilla too09:15
desrtthis probably isn't ubuntu's fault09:15
fabbioneok that would be nice09:15
fabbioneit might as well be .. but a double check will save me time09:16
desrtok09:39
desrtproblem appears to be in vanilla09:39
desrtand i've found the source of it09:39
desrtsys_inotify_rm_watch( int fd, u32 wd )09:40
desrtstruct file *filp;09:40
desrtstruct inotify_device *dev;09:40
desrtfilp = fget(fd);09:40
desrtif(!filp) return -EBADF;09:40
desrt/* no check to find out what type of fd filp is */09:40
desrtdev = filp->private_data;   /* assign unknown datatype to an inotify_device pointer */09:41
desrt/* all downhill from hear */09:41
desrt*here09:41
fabbionedesrt: meh....09:45
desrtshould i email LKML or what?09:45
fabbionemail rlove first09:46
desrtok09:46
fabbionejust avoid the speech about different syscall nums09:46
fabbioneuse the vanilla one as reference09:46
fabbioneotherwise we will start bouncing emails back and forward about ubuntu kernel being broken09:46
fabbionewhen the problem is in vanilla too09:46
dokofabbione, lamont: did the new curl 7.14 build on sparc and hppa?09:47
desrt:)09:47
fabbionedoko: is it in universe or main=?09:48
fabbionewell i guess until seb128 will learn to use versioned build-dep, it doesn't really matter..09:49
fabbioneall of gnome on sparc is broken09:49
dokofabbione: main09:49
fabbionebecause it keeps coming up with _XOPEN_SOURCE somewhere09:49
fabbionedoko: it's probably queued09:50
fabbione  curl_7.14.0-2ubuntu109:50
fabbioneyeah it is09:50
dokook, thanks10:01
=== desrt doesn't suppose there's any danger of 2.6.13 coming out tomorrow
fabbionedesrt: ehehhe10:02
desrti don't really think there's a need to email andrew morton10:02
fabbioneno i don't think so10:02
desrtbtw10:02
desrtdoes 'UPSTREAM' mean upstream has been notified about the issue?10:03
fabbionedesrt: yes10:03
desrtcool.10:03
desrtnow that that's over and done with10:04
=== desrt goes back to playing with inotify :)
desrtthanks for your help10:04
desrtas per usual :)10:04
=== chmj [~chmj@196.36.161.235] has joined #ubuntu-toolchain
fabbionedesrt: thanks to you for being so nice!10:07
chmjmorning 10:08
chmjO.O10:08
fabbionehey chmj 10:35
fabbionedoko:12:21
fabbioneconfigure: error: jni.h could not be found. Mismatch between gcc and libgcj or libgcj-devel missing?12:21
fabbione(building OO2)12:21
fabbionewhat can cause that?12:21
dokostrange. the build-deps are all there. which version do you build?12:22
fabbione1.9.116-0.pre1ubuntu112:22
fabbionethe one in the archive12:22
fabbionei will forward the build log12:25
fabbioneit's only 300K12:25
dokook12:26
dokols -l /usr/lib/jvm/java-gcj/include12:29
dokook, we need an update for java-gcj-compat12:29
fabbioneok :)12:29
fabbionegood to know12:29
fabbionesee.. sparc isn't completely useless :)12:29
fabbionedoko12:29
fabbioneany news about binutils?12:29
dokowhat did I forget? :(12:30
fabbionesparc starts to feel the pressure of building half of the desktop12:30
fabbionethe linking problem?12:30
fabbionewith -Wl,--as-needed?12:30
fabbionehttps://bugzilla.ubuntu.com/show_bug.cgi?id=12822 <-12:31
dokohmm, I thought that was a libtool/pkgconfig problem, which keybuk and jbailey would address?12:31
fabbioneno no12:31
fabbionelook at the bug12:31
fabbionethere is a simple test case12:31
fabbionewith hello world12:31
dokook, I'll look12:32
fabbionethe other bug you are talking about is to do in such a way that gnome doesn't need --as-needed12:32
fabbionebut binutils is still buggy :)12:32
fabbioneon sparc and alpha12:32
fabbionei need to grab something to eat12:33
fabbionelater12:33
=== doko [~doko___@dsl-084-059-067-130.arcor-ip.net] has joined #ubuntu-toolchain
=== jbailey [~jbailey@modemcable139.249-203-24.mc.videotron.ca] has joined #ubuntu-toolchain
=== chmj [~chmj@196.36.161.235] has joined #ubuntu-toolchain
lamontdoko: several timeouts on hppa with defunct processes, during tests03:09
fabbionehey lamont 03:09
fabbionelamont: any news about ia64?03:09
dokolamont: java?03:10
lamontdoko: curl03:10
lamontfabbione: will have news either way in a few hours03:10
fabbionelamont: ok thanks03:10
dokolamont: hmm, I suspect, that is the buildd environment, I'll check here locally03:11
lamontdoko: wouldn't terribly surprise me03:12
=== lamont__ [~lamont@15.238.5.126] has joined #ubuntu-toolchain
fabbionedesrt: there is a big bunch of patches in git for inotify05:32
fabbioneone of them is the one we need05:32
fabbionethey will be in for the next upload05:32
desrtfabbione; ya.  i just got an email from robert :)05:50
fabbionedesrt: i just finished the rediffing05:50
fabbione:)05:50
desrtthat was my first kernel security vuln05:50
desrti'm sort of disappointed that it was already fixed :P05:51
fabbioneehhee05:51
fabbionelet see if it builds06:03
fabbionedesrt: anyway we should seriously move our kernel talks to #ubuntu-kernel :)06:04
desrtheh.  i swear i originally came here to talk about the toolchain :)06:05
=== Seveas [~seveas@seveas.demon.nl] has joined #ubuntu-toolchain
jbaileyelmo: ping?   Breezy-i386 chroot on concordia seems to have way out of date apt sources.06:16
=== doko [~doko___@dsl-084-059-085-139.arcor-ip.net] has joined #ubuntu-toolchain
=== elmo_ [~james@83-216-156-21.jamest747.adsl.metronet.co.uk] has joined #ubuntu-toolchain

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