#freenet IRC Log

Index

IRC Log for 2008-09-01

Timestamps are in GMT/BST.

[0:02] * PhilKC_ (i=PhilKC@) has joined #Freenet
[0:02] * NEOatNHNG1 (n=neo@) Quit (Read error: 110 (Connection timed out))
[0:06] * PhilKC (i=PhilKC@) Quit (Nick collision from services.)
[0:07] * PhilKC_ is now known as PhilKC
[1:10] * HyperDimensional (n=me@) has joined #freenet
[1:12] * HyperDimension (n=me@) Quit (Read error: 110 (Connection timed out))
[2:19] * gasi (n=gasi@) has joined #freenet
[2:23] * phrosty (n=phrosty@) has joined #freenet
[2:34] * gasi__ (n=gasi@) Quit (Read error: 110 (Connection timed out))
[2:53] * HyperDimension (n=me@) has joined #freenet
[3:11] * HyperDimensional (n=me@) Quit (Read error: 110 (Connection timed out))
[3:15] * Kedlun (n=chatzill@) Quit ("ChatZilla 0.9.83 [Firefox 3.0.1/2008072820]")
[3:26] * k2t0f12d (n=k2t0f12d@) Quit (Read error: 104 (Connection reset by peer))
[3:42] * k2t0f12d (n=k2t0f12d@) has joined #freenet
[3:51] <FreenetLogBot> r22292 (1158) was built successfully on emu, mirrors are updating
[3:56] * Nande (n=KVIrc@) Quit ("byes, tengan la bondad de ser felices. ;)")
[4:01] * PhilKC (i=PhilKC@) Quit (Read error: 104 (Connection reset by peer))
[4:09] * PhilKC (i=PhilKC@) has joined #Freenet
[4:11] * Zarggg (n=z@) Quit ()
[4:26] * k2t0f12d (n=k2t0f12d@) Quit (Read error: 104 (Connection reset by peer))
[5:02] * caytchen (n=caytchen@) has joined #freenet
[5:36] * caytchen (n=caytchen@) Quit ("Verlassend")
[6:46] * FrinkC (n=FrinkC@) has joined #freenet
[6:54] * ozma (n=ozma@) has joined #freenet
[6:57] * ozma (n=ozma@) Quit (Client Quit)
[6:59] * ozma (n=ozma@) has joined #freenet
[7:03] * ozma (n=ozma@) Quit (Remote closed the connection)
[7:03] * ozma (n=ozma@) has joined #freenet
[7:18] <FreenetLogBot> r22293 (1158) was built successfully on emu, mirrors are updating
[7:26] * Barvinok (i=Barvinok@) has joined #freenet
[7:29] * StefftheEmperor_ (n=Steffthe@) has joined #freenet
[7:40] * Barvinok (i=Barvinok@) Quit ()
[7:45] * ozma (n=ozma@) Quit ("using sirc version 2.211+KSIRC/1.3.12")
[7:46] * StefftheEmperor (n=Steffthe@) Quit (Read error: 110 (Connection timed out))
[7:50] <PiratePete123> whois piratepete
[7:53] * StefftheEmperor (n=Steffthe@) has joined #freenet
[7:55] * StefftheEmperor_ (n=Steffthe@) Quit (Read error: 110 (Connection timed out))
[7:55] * HyperDimensional (n=me@) has joined #freenet
[8:06] * caytchen (n=caytchen@) has joined #freenet
[8:09] * PiratePete123 (n=dave@) Quit ("leaving")
[8:12] * HyperDimension (n=me@) Quit (Read error: 110 (Connection timed out))
[8:14] * Mathiasdm (n=Mathias@) has joined #freenet
[8:20] * Hikaru`_ (n=plop@) has joined #freenet
[8:25] * PiratePickles (n=dave@) has joined #freenet
[8:27] * PiratePickles (n=dave@) Quit ("leaving")
[8:43] <FreenetLogBot> r22294 (1158) was built successfully on emu, mirrors are updating
[8:43] <FreenetLogBot> r22295 (1158) was built successfully on emu, mirrors are updating
[8:45] * Mathiasdm2 (n=Mathias@) has joined #freenet
[8:56] * zerwas (n=zerwas@) has joined #freenet
[9:01] * Mathiasdm (n=Mathias@) Quit (Read error: 110 (Connection timed out))
[9:01] <zerwas> Is there a specific reason why there is no ubuntu/debian repository?
[9:06] <nextgens> no one got around packaging freenet
[9:06] <FreenetLogBot> Website is up to date with r22296
[9:07] <nextgens> and as we release often we can't get integrated into debian anyway
[9:07] <nextgens> so it's a matter of having and maintaining an unofficial repository
[9:17] <zerwas> Okay, i understand
[9:19] <Luke771> zerwas the jar installer works perfectly on debian/ubuntu, Freenet isn't installed at a system level, everything stays in the freenet directory that you select, so there's no actual need for a package, you can run the jar instaaer directly off the website or unpack the headless package and run the updater script
[9:20] <Luke771> installer
[9:21] * cdent (n=cdent@) has joined #freenet
[9:23] <zerwas> Luke771, i know, and it is a clean solution, but one could argue like that for every application out there. IMHO linux apps must be installable through the package manager as soon as they are stable. But as Freenet gets updated so often it would be really hard to get it into official ubuntu repos, so what is left is an unofficial repository which is as good as the JAR installer
[9:24] <nextgens> minus the overhead needed to maintain the repository
[9:24] <Luke771> well, I guess if you made a .deb package and kept it up to date and maintained a repository, the Freenet team would appreciate that
[9:25] <Luke771> you see, freenet doesnt have many resources, few coders, few contributors, little money, etc; devs have more important stuff to work on
[9:27] * caytchen (n=caytchen@) Quit ("Verlassend")
[9:27] <zerwas> i will see if i can create a small repository until the end of the year. first i will write a wiki page about freenet for the german ubuntu community (that's why i asked about the repo)
[9:27] <zerwas> thanks for all the information
[9:28] <Luke771> see if you can make it for the whole community (english version) too, and thanks
[9:30] <nextgens> zerwas> once the package is done and working you can contact me and I'll see whether we can host it on the project's server
[9:31] <nextgens> we already have a mirroring/distribution system, it would be a good idea for the package to use it too
[9:33] <zerwas> nextgens, sounds good, i will take a rain check on this as soon as i have created a package
[9:37] * Luke771 (n=luke@) Quit ("[add smart/funny quote here]")
[9:43] * Gudihl (n=Gudihl@) has joined #freenet
[10:07] * mpp (n=user@) has joined #freenet
[10:32] * nico_32 (n=user@) has joined #freenet
[10:33] * infinity0 (n=infinity@) has joined #freenet
[10:39] * [Malkav] (i=Malkavia@) Quit (Remote closed the connection)
[11:12] * Nande (n=KVIrc@) has joined #freenet
[11:20] * smariot (n=smariot@) has joined #freenet
[11:23] * localhost2 (n=Chris@) has joined #freenet
[11:25] <smariot> http://code.bulix.org/ahtwrd-68229?raw
[11:26] <smariot> will freenet ever get 'pretty' key names?
[11:33] <nextgens> and how to update records?
[11:33] <nextgens> smariot> there is already a dns-like system on freenet bundled with the pyFreenet tools
[11:34] <smariot> the KSK keys contained the names of USK keys which could be updated.
[11:35] <smariot> i'll look at pyFreenet tools later.
[11:36] <nextgens> KSKs are spoofable
[11:36] <nextgens> DNS too but that's another story
[11:36] <nextgens> anyway it might not be a "feature" we want on our naming system :)
[11:37] <smariot> for further details on KSK spoofing, please see KSK@gpl.txt
[11:40] * localhost1 (n=Chris@) Quit (Read error: 110 (Connection timed out))
[12:02] <nextgens> smariot> send your draft to @devl if you're happy with it
[12:08] <smariot> i'll leave it alone for now.
[12:17] <FreenetLogBot> r22298 (1158) was built successfully on emu, mirrors are updating
[12:18] * pmpp\pas-la (n=pmpp@) has joined #freenet
[12:21] * sbc (n=ca@) has joined #freenet
[12:22] * Luke771 (n=luke@) has joined #freenet
[12:22] * ChanServ sets mode +v Luke771
[12:26] * Mathiasdm2 (n=Mathias@) Quit ("Invisible Internet Project: http://www.i2p2.de")
[12:27] * Hikaru`_ (n=plop@) Quit (Read error: 104 (Connection reset by peer))
[12:29] * pmpp (n=pmpp@) Quit (Read error: 110 (Connection timed out))
[12:38] <mpp> @nextgens: on the queue site - when i uploaded a file and its 100% done
[12:39] <mpp> what is the remove button for ?
[12:39] <nextgens> removing it from the list?
[12:39] <smariot> it's just to remove the link from the page.
[12:39] <mpp> ah okay
[12:39] <smariot> it doesn't remove it from freenet or anything.
[12:39] <nextgens> you can't get any data out of freenet when it's inserted
[12:39] <mpp> is there anywhere an overview of the freenet network size
[12:40] <mpp> like a graph like the one presented on the simulation on ccc ?
[12:40] <mpp> just to get an idea of the net's size
[12:40] * Zarggg (n=z@) has joined #freenet
[12:40] <smariot> try http://localhost:8888/stats/?mode=2
[12:41] * Hikaru`_ (n=plop@) has joined #freenet
[12:41] <mpp> yes but thats only the max 20 nodes i see - right ?
[12:42] <nextgens> the networkSizeEstimate is the unique location count harvested from swap messages over a 7 hops horizon
[12:43] <smariot> the node location distribution graph has all the locations it has seen - not actual nodes, but there ought to be a node behind each one.
[12:43] <nextgens> smariot> not exactly
[12:44] <nextgens> we do reset locations on a probabilistic basis
[12:44] <nextgens> meaning that it's normal for some locations to disapear
[12:44] <nextgens> ...
[12:44] <nextgens> and anyway join/leave churn makes it happen in any case
[12:44] * cdent (n=cdent@) Quit ("food")
[12:45] <smariot> it's all a shot in the dark, anyway.
[12:46] <smariot> my node is on the opposite side of the network that it was on like 3 days ago.
[12:46] <smariot> i can't imagine that's good for routing.
[12:47] <nextgens> are you running opennet or something?
[12:47] <smariot> yeah, i am.
[12:47] <nextgens> :/
[12:48] <nextgens> node's locations are recorded in a text file
[12:48] <nextgens> you can see it shifting from there
[12:48] <nextgens> if your downtime is high, it's not abnormal for your location to shift
[12:49] <nextgens> and as said previously, your node might have reset its location
[12:50] <nextgens> if your peers were all in the same area it should have swapped it back though
[12:50] <nextgens> but maybe it didn't because you've had downtime and your node has reannounced
[12:51] <nextgens> and now most of your peers have a specialization closer to your new location than your old one
[12:51] <smariot> i'll just assume that all my old peers disappeared then.
[12:52] <nextgens> you can validate the location reseting theory by reading your location.log.txt file though
[12:52] <nextgens> it says when it resets
[12:54] <smariot> it says random reset from duplicated location
[12:55] <nextgens> that shouldn't happen
[12:55] <nextgens> but it's an other story :)
[12:56] <nextgens> bbiab
[13:00] * caytchen (n=caytchen@) has joined #freenet
[13:04] * cdent (n=cdent@) has joined #freenet
[13:31] * zerwas (n=zerwas@) Quit (Remote closed the connection)
[13:31] * Mathiasdm (n=Mathias@) has joined #freenet
[13:32] * saces (n=saces@) Quit ("Massa hat gesprochen...")
[13:38] * Luke771 (n=luke@) Quit ("[add smart/funny quote here]")
[13:40] * pmpp\pas-la is now known as pmpp
[13:40] * Johan^mlg (n=bllarf@) has joined #freenet
[13:51] * cdent_ (n=cdent@) has joined #freenet
[13:59] * zerwas (n=zerwas@) has joined #freenet
[13:59] * cdent (n=cdent@) Quit (Read error: 110 (Connection timed out))
[14:21] * ahuxley (n=ahuxley@) Quit ()
[14:31] * NEOatNHNG (n=neo@) has joined #freenet
[14:33] * Hikaru`_ is now known as Hikaru
[14:33] * toad_ (n=toad@) has joined #freenet
[14:33] * ChanServ sets mode +o toad_
[14:33] * Hikaru is now known as Hikaru``
[14:34] <toad_> hi
[14:35] <nextgens> hey
[14:35] <nextgens> toad_> I was wondering, is there any reason why we use our own logger?
[14:35] * nextgens broke its synchronization; it's way faster now... but subject to races
[14:35] <toad_> races are BAD
[14:36] <toad_> use a minimal-locking double ended queue or something
[14:36] <nextgens> well, who cares if it's while setting the logging settings?
[14:36] <nextgens> the shouldLog() thingy was insane
[14:36] <nextgens> we had a nested locking on the whole Logger monitor
[14:36] <toad_> nextgens: far less insane than not calling it
[14:36] <toad_> nextgens: if we don't call it then we have to generate the strings, and that causes *MAJOR* cpu usage
[14:37] <nextgens> unless we force-disable them :)
[14:37] <toad_> well you can probably avoid the nested locking without causing races, right?
[14:37] <toad_> nextgens: **** that
[14:37] <nextgens> hehe
[14:37] <nextgens> nah I was just kidding :)
[14:37] <toad_> nextgens: that is utterly and totally unacceptable and will result in you losing your SVN privelidges :)
[14:37] <nextgens> I've reduced the nested locking
[14:38] <toad_> right, that's good
[14:38] <toad_> and doesn't have to cause races
[14:38] <nextgens> well my implementation does
[14:38] <toad_> as regards logMINOR, the idea is to have a static logMINOR and to check it every so often
[14:38] <toad_> in some function that gets called once every few seconds, depending on the class
[14:38] <nextgens> we were using arrays which had to be synchronized, now we use a vector for the throoshold levels
[14:38] <toad_> nextgens: then don't commit it
[14:39] <toad_> the thresholds are broken anyway - you can't delete from it, only add to it, from the config page
[14:39] <toad_> ps -o pcpu 20117
[14:39] <toad_> %CPU
[14:39] <toad_> 16.5
[14:39] <toad_> :|
[14:39] <toad_> 16.5%
[14:39] <nextgens> well that was my conclusion too
[14:39] <nextgens> hence I didn't bother doing it differently
[14:40] <nextgens> we could even switch from the vector to an arraylist
[14:40] <toad_> if it doesn't make it worse then that's fine
[14:40] <toad_> well to remove stuff we need to sync on it
[14:40] <nextgens> the original question was why don't we use the java api for logging?
[14:41] <toad_> originally because freenet 0.5 was written for pre-1.5
[14:41] <nextgens> oh, btw I think I've caught the RealBucketBug
[14:41] <toad_> pre-1.4
[14:41] <nextgens> trunk ought to be releasable now
[14:41] <toad_> after that, because switching wouldn't gain us very much as we'd still need FileLoggerHook
[14:41] <nextgens> I've to review sdiz's latest change
[14:41] <toad_> in terms of saving code, switching is a good idea
[14:41] <nextgens> and maybe deal with the out-of-file-descriptors problem
[14:41] <toad_> but we will still need FileLoggerHook to hook into the java listeners system
[14:42] <toad_> because we need an efficient, fine-tunable system
[14:42] <nextgens> the other obvious option is log4j
[14:42] <nextgens> but that's asl2
[14:42] <toad_> yeah, meaning we'd need to move to GPL2 to use it
[14:42] <toad_> which would probably mean some code rewriting
[14:42] <toad_> which might have to be cleanroom so would be a PITA
[14:43] <toad_> having said that that's the way we want to go long term
[14:43] <toad_> 16.5% CPU, 1d22h uptime, lots of stuff queued, log level ERROR
[14:43] <toad_> queued for download that is
[14:44] <toad_> the cpu is a percentage of one core, the maximum would be 400% here
[14:44] <toad_> 128MB memory limit, 4.86GB total download queue...
[14:44] <toad_> hmmm
[14:44] <toad_> s/move to GPL2/move to GPL3
[14:45] * nextgens understood what you meant
[14:46] <nextgens> do you know if there is any way to ask from the API which file descriptors are open globally?
[14:46] <toad_> what shall i do now? cpu profiling i suppose...
[14:46] <toad_> nextgens: why would you want to?
[14:46] <nextgens> 'cause several users have reported OOMs related to running out of FDs
[14:47] <nextgens> especially now that the bucket code works on trunk
[14:47] <toad_> well then don't keep stuff open when you don't need to, and consider pooling fd's if you absolutely need a large number of buckets open
[14:47] <nextgens> the long-term solution is probably to make a bucket out of a RAF
[14:48] <toad_> right, hence pooling
[14:48] <toad_> we did that in 0.5
[14:48] <toad_> you might want to have a look at the code
[14:48] <toad_> i wrote it so it's usable :)
[14:48] <nextgens> :D
[14:49] <toad_> cpu on a 3 second basis (top) is typically 10-20% ...
[14:49] <toad_> sometimes it goes down to 9 or so
[14:49] <nextgens> it means we will need more testing before we release if I implement it though
[14:49] <toad_> sometimes it goes up to 20s
[14:49] <toad_> nextgens: we didn't get OOM-fd's before
[14:50] <toad_> nextgens: if we are now then it means you've leaving something open where it doesn't need to be left open
[14:50] <toad_> well we did
[14:50] <toad_> but not a lot of them
[14:50] <nextgens> that's because we didn't use the bucketFactory for everything
[14:50] <toad_> last time we reduced the FEC to only do 3 at once at most
[14:50] <nextgens> whereas now we use it almost everywhere
[14:50] <toad_> nextgens: i don't follow
[14:50] <toad_> nextgens: a fd should only be open if the bucket is actually being read from or written to
[14:50] <nextgens> current stable does use the factory almost everywhere
[14:51] <nextgens> but as the bucket-migration code is broken it allocates Rambuckets... which leads to OOMs
[14:51] <toad_> eh?
[14:51] <nextgens> on trunk it works and it allocates FDs...
[14:51] <toad_> ah
[14:51] <nextgens> which leads to OOM'cause we don't have any FDs
[14:51] <toad_> well ... i still don't get it
[14:51] <nextgens> remaining
[14:51] <nextgens> [14:50] < toad_> | nextgens: a fd should only be open if the bucket is actually being read from or written to
[14:51] <toad_> why would we have more inputstreams / outputstreams in trunk?
[14:51] <nextgens> that's not what we do
[14:52] <toad_> nextgens: then what we do IS WRONG
[14:52] <nextgens> hmm
[14:52] <toad_> a fd should be allocated when we do getInputStream() or getOutputStream()
[14:52] <toad_> and not if we don't
[14:52] <nextgens> let me double-check
[14:52] <toad_> and when we've stopped reading or writing, it should be closed
[14:52] <nextgens> we do allocate one when we migrate
[14:52] <nextgens> 'cause we need to migrate the data
[14:52] <toad_> do we close it?
[14:52] <nextgens> and we need to keep it open, don't we ?
[14:52] <toad_> in the case where we didn't have one open prior to migrating
[14:53] <toad_> nextgens: if we migrated because we wrote too much data, we need to keep it open
[14:53] <nextgens> have a look to the code it's self-explanatory
[14:53] <toad_> if we migrated because we timed out, we should close it
[14:53] <toad_> is that what we do?
[14:53] <nextgens> but right now we open a output stream in any case
[14:53] <toad_> well there's your fd leak then
[14:53] <nextgens> no it's not
[14:53] <nextgens> [14:53] <@ toad_> | if we migrated because we timed out, we should close it
[14:53] <nextgens> it's not what we do
[14:53] <toad_> if there isn't a stream open, and we migrate, then we should close it after we migrate
[14:53] <toad_> otherwise we leak FDs
[14:54] <nextgens> and re-open it when we need it?
[14:54] <toad_> re-open it when somebody calls getOutputStream()/getInputStream(), yes
[14:54] <nextgens> that won't work, will it?
[14:54] <nextgens> hmm
[14:54] <nextgens> I thought we wanted to limit the OutputStreams to one and only one
[14:55] <toad_> we do, so?
[14:55] <toad_> what's the problem?
[14:55] <nextgens> well, that's where my leak is
[14:55] <nextgens> no it's not a problem :)
[14:55] <toad_> that one OS can be allocated lazily
[14:55] <nextgens> right now we use the OS's reference(pointer) as our index
[14:55] <nextgens> hence I need to get one in any case
[14:56] <nextgens> but yeah I can close it if we don't use it
[14:56] <toad_> ok
[14:57] <toad_> and then we can enter the final stabilisation phase for 1159?
[14:57] <nextgens> and how to detect when we have closed it?
[14:57] <toad_> hmmm?
[14:57] <nextgens> a catch() block?
[14:57] <nextgens> that's ugly
[14:57] <toad_> don't use the os as index
[14:57] <toad_> at least not if one isn't open
[14:57] <toad_> well... yeah
[14:57] <toad_> if it's closed set it to null
[14:58] <nextgens> using it as the index was convenient :p
[14:58] <toad_> then the inputstreams know they were opened when there was no OutputStream
[14:58] <toad_> and if one is opened, they can immediately see that there is a discontinuity, and throw
[14:58] <toad_> but of course we don't even need that as you close them on opening a new OutputStream, don't you?
[14:58] <nextgens> now I do that yes
[14:58] <nextgens> but previously I didn't
[14:59] <toad_> so there's no problem
[14:59] <toad_> getOutputStream() can throw if the output stream is set
[14:59] <toad_> if it's not, it can close all the input streams
[14:59] <toad_> or it can check whether there are input streams open and throw if so
[14:59] <toad_> which might be better for debugging
[14:59] <nextgens> I'll see what I can come up with now that I see the problem
[14:59] <toad_> cool
[15:00] <toad_> good hunting, let me know if you need more input
[15:00] <nextgens> do we still need polling?
[15:00] <toad_> hmmm?
[15:00] <toad_> what sort of polling?
[15:00] <nextgens> to balance the usage of FDs
[15:00] <toad_> pooling you mean?
[15:00] <toad_> no
[15:00] <toad_> we shouldn't
[15:00] <nextgens> pooling, sorry
[15:00] <nextgens> ok
[15:00] <toad_> we shouldn't have enough fd's open for it to be a problem
[15:01] <toad_> if we do, well, implement the all-temp-files-in-one-blob bug
[15:01] <toad_> or 16 blobs for parallelism (on windows reads on a file are synchronized)
[15:01] <toad_> even if they don't overlap
[15:02] <nextgens> only wider testing will reveal such problems though
[15:04] <toad_> sure, we want to get a working (better than 1158) 1159 out soon
[15:04] * zerwas (n=zerwas@) Quit (Remote closed the connection)
[15:04] * Hikaru`` (n=plop@) Quit (Read error: 104 (Connection reset by peer))
[15:05] * toad_ looks at cpu profiling data on a downloading node ...
[15:05] <toad_> four network operations, four fd.sync's
[15:05] <toad_> then PacketSender.realRun
[15:05] <toad_> WTF?
[15:05] <toad_> why would that be higher on db4o? and if it's not, why does nextgens get so much lower CPU usage?
[15:06] * Anarhist (n=volodya@) Quit ("Leaving")
[15:06] <toad_> PacketSender:345 ... if(pn.shouldSendHandshake()) { ...
[15:06] <nextgens> 'cause I'm awesome :p
[15:07] <toad_> hmmm, so it's waiting for the lock perhaps?#
[15:07] <nextgens> set yourkit up and you'll know :)
[15:07] <toad_> second one is if(pn.shouldDisconnectAndRemoveNow() && !pn.isDisconnecting()) { ...
[15:07] <nextgens> I might help with profiling your branch when I'm done with my fd problem
[15:07] <toad_> that again could be waiting for a pn lock
[15:09] <toad_> followed by decryption in PacketMangler, followed by PacketSender:207 (WTF? "for(int i=0;i<nodes.length;i++) { ...")
[15:09] * saces (n=saces@) has joined #freenet
[15:09] * ChanServ sets mode +o saces
[15:09] <toad_> followed by another decryption
[15:09] <toad_> PeerNode.isRoutable()
[15:10] <toad_> a disk read, more decryption, more decryption, what looks like a plugin load but might be db4o related ...
[15:11] <toad_> decrypting a block in a splitfile got-block handler
[15:11] <toad_> FEC encoding
[15:11] <toad_> a hell of a lot of crypto
[15:12] * Gudihl (n=Gudihl@) Quit ("Leaving")
[15:13] <toad_> on the evidence of hprof, the direct cpu impact (ignoring garbage collection) of db4o is negligible
[15:13] <toad_> and i've got the garbage collection under control now imho
[15:15] <FreenetLogBot> r22299 (1158) was built successfully on emu, mirrors are updating
[15:15] <toad_> when you've got 1159 out, i'd certainly welcome some help on this
[15:15] <FreenetLogBot> r22300 (1158) was built successfully on emu, mirrors are updating
[15:15] <toad_> in the meantime i'll move on
[15:15] <nextgens> toad_> a lot of trunk's GC is caused by the byte array churn on FNPPacketMangler
[15:16] <toad_> are you reasonably sure you have fixed the buckets bug?
[15:16] <nextgens> the rest is mostly String churn
[15:16] <nextgens> well yes I am
[15:16] <toad_> nextgens: caused by unguarded logging?
[15:16] <nextgens> but it still needs some basic testing
[15:16] <nextgens> toad_> dunno but that's possible
[15:17] <nextgens> the change I've made to Logger.shouldLog has a MAJOR performance impact
[15:17] <nextgens> previously important threads got locked for seconds awaiting for the lock on the logger
[15:17] <toad_> the issue there was nested locking? why is that a big deal?
[15:17] <toad_> ouch
[15:17] <toad_> so the problem was that we call shouldLog() too frequently then?
[15:18] <nextgens> the problem is that all the logging classes are synchronized
[15:18] * FrinkC (n=FrinkC@) Quit ("Bye")
[15:18] <nextgens> with nested sync
[15:18] <toad_> well it's relatively easy to break that
[15:18] <nextgens> imho we don't care much about line-ordering
[15:18] <toad_> well...
[15:19] <toad_> if there is significant reordering then things can get very messy
[15:19] <toad_> when trying to understand what's happening
[15:19] <toad_> however, the write to the FileLoggerHook's buffer is always going to be synchronized, I dunno how much reordering is gonna happen just because you un-sync and then call it on the Logger filter class
[15:20] <nextgens> we have timestamps don't we?
[15:20] <toad_> nextgens: so?
[15:21] <nextgens> ordering shouldn't be a big deal
[15:21] <toad_> nextgens: they're only millisecond resolution, and having to sort by timestamp before you even start to parse the log would be a MAJOR pain
[15:21] <toad_> nextgens: debuggers can only take you so far with many of freenet's problems
[15:21] <toad_> especially as they tend to segfault
[15:22] <toad_> but i don't see why unlocking in the logger object before we pass it to the FileLoggerHook would cause significant reordering anyway
[15:22] <toad_> within a single thread, there would be no reordering at all
[15:22] <toad_> between threads a small amount of reordering is probably acceptable
[15:23] * Zarggg (n=z@) Quit ()
[15:24] <nextgens> do you want to have a look to it or shall I just get rid of the time-consuming sync. ?
[15:25] <toad_> hmm
[15:25] <toad_> i'll have a look, 1sec
[15:25] <nextgens> agreed, there shouldn't be any re-ordering intra-thread
[15:25] <toad_> which class and method are we talking about?
[15:25] <nextgens> Logger.(debug|minor|normal|error)\(.*\)
[15:25] <toad_> okay
[15:26] <toad_> so these classes are synchronized solely because of the possibility that we might change the logger variable
[15:26] <nextgens> yeah
[15:26] <toad_> i don't see any reason for that - either make it transient, or grab it to a local variable in a synchronized block
[15:27] <toad_> instanceShouldLog() doesn't show up as a big one then?
[15:27] <nextgens> the whole code would need some cleanup
[15:27] <nextgens> we should use enums too instead of ints
[15:27] <toad_> what exactly did you change?
[15:28] <toad_> SVN rev?
[15:28] <nextgens> it's three commits from now iirc
[15:29] <toad_> nextgens: I disagree with 22290
[15:29] <toad_> nextgens: the great thing about a DetailedThreshold[] is you can copy it to a local variable inside a synchronized(this), and then check it *while unlocked*
[15:30] <toad_> nextgens: we may not have used that trick here, but it's a good trick and we should use it
[15:30] <toad_> in fact, it looks like we did use it, we were just a bit overenthusiastic
[15:30] <toad_> hmmm wtf
[15:31] <nextgens> revert it then
[15:31] <toad_> we used it in other places but not in instanceShouldLog ... wtf?
[15:31] <nextgens> the code as it was didn't make sense
[15:31] <toad_> removing the synchronized on the static shouldLog() makes sense
[15:32] <toad_> some of your changes to LoggerHook make sense and some don't ...
[15:32] <toad_> you want me to sort this out? i don't have access to your profiling atm ...
[15:34] * toad_ fixes
[15:43] <nextgens> toad_> on current trunk, most of the GCs are ArrayLists; 98% of which come from LoggerHook.instanceShouldLog
[15:44] <nextgens> my guess is that it's the vector
[15:44] <FreenetLogBot> r22301 (1158) was built successfully on emu, mirrors are updating
[15:46] <toad_> nextgens: what vector?
[15:46] <FreenetLogBot> r22302 (1158) was built successfully on emu, mirrors are updating
[15:46] <toad_> oh, your iterator?
[15:47] <toad_> maybe it copies it and returns itself to iterate or something dumb like that?
[15:47] <FreenetLogBot> r22303 (1158) was built successfully on emu, mirrors are updating
[15:47] <toad_> instanceShouldLog() as i just committed creates no objects at all and synchronizes *very* briefly
[15:48] <toad_> setDetailedThresholds() creates an ArrayList inside a synchronized function, but that's fine imho
[15:48] <toad_> we can move the whole parsing out of the synchronized if we need to, but do we need to? it's called very rarely
[15:48] <toad_> ah actually we already have ok
[15:49] * toad_ doesn't understand why you can't remove stuff from detailed thresholds in config given the current code
[15:49] <toad_> or even the prior code
[15:49] <toad_> well, when it was a Vector i suppose it would make sense
[15:50] <toad_> but that's only very recent isn't it?
[15:54] <nextgens> you've reverted the code where I've introduced vectors
[15:56] <toad_> you told me to
[15:56] <nextgens> well yes it was probably not a bright idea
[15:56] <nextgens> my implementation wasn't thread-safe
[15:57] <toad_> sure, but there are very good reasons not to use a Vector there
[15:57] <nextgens> agreed :)
[15:57] <toad_> an array which we can stick in a local variable involves *much* less logging in the common case
[15:58] <toad_> errr locking
[16:00] <nextgens> the bucket code seems to be working here
[16:03] <toad_> nextgens: did my changes fix the churn?
[16:04] <toad_> nextgens: where's that jar you cooked for me again? i'm gonna try it
[16:04] <toad_> if it works i'm gonna request wider testing
[16:04] <toad_> if i manage to insert it :)
[16:04] <nextgens> toad_> the code is still broken
[16:04] <toad_> nextgens: which code?
[16:04] <nextgens> the logging one
[16:04] <nextgens> in shouldLog
[16:04] <toad_> oh? in what sense broken?
[16:04] <nextgens> well not broken but inneficient
[16:05] <nextgens> where do we check for the global threshold level?
[16:05] <toad_> in what sense is it inefficient?
[16:05] <toad_> at the end of the function
[16:05] <nextgens> wouldn't it make sense to check it before?
[16:05] <toad_> no, because then it wouldn't work
[16:05] <nextgens> hmm
[16:05] <nextgens> detailedThresholds are overrides?
[16:05] <toad_> if no detailed thresholds are set, we skip the loop
[16:05] <toad_> yes
[16:05] <nextgens> ah
[16:06] <nextgens> the description string insn't self-explicit :)
[16:06] <toad_> instanceShouldLog() is about as lean and mean as it's gonna get imho
[16:06] <toad_> well, there is one thing i can do ... /me does it
[16:06] * mpp (n=user@) has left #freenet
[16:06] <toad_> it's not an optimisation though, it just saves us one line :|
[16:08] <FreenetLogBot> r22304 (1158) was built successfully on emu, mirrors are updating
[16:08] <toad_> now (22305) it's as good as it's gonna get :|
[16:08] <FreenetLogBot> r22305 (1158) was built successfully on emu, mirrors are updating
[16:08] <nextgens> I have a BlockTransmiter which got delayed for 135ms waiting for a lock on FileLoggerHook here
[16:09] <toad_> well, what holds the FileLoggerHook for a long time? does anything?
[16:09] <toad_> instanceShouldLog() holds the lock for around a nanosecond...
[16:09] <toad_> or thereabouts
[16:10] <toad_> [16:43] <nextgens> in my ~/public_html/freenet-ext-db4o.jar
[16:10] <toad_> nextgens: this one, right?
[16:10] <toad_> nextgens: is that 7.2 with 1.5 ?
[16:10] <toad_> if it's 6.4/1.2 it won't work
[16:14] <nextgens> okay, it's better now
[16:14] <nextgens> it's 7.2-1.5
[16:14] <nextgens> we still get blocked for 2-5ms
[16:15] <nextgens> but well, that's better
[16:15] <toad_> and how do i know it's not your evil plan to take over my machine?
[16:15] <toad_> :)
[16:16] <nextgens> it's already done :D
[16:16] <toad_> too late, nextgens 0wnZ ...
[16:16] <nextgens> ^-^
[16:16] <toad_> anyway he has access to the updater key ... so if he's bad we're all fscked
[16:16] <toad_> INFO | jvm 5 | 2008/09/01 17:16:21 | Exception in thread "main" java.lang.NoClassDefFoundError: org/tanukisoftware/wrapper/WrapperListener
[16:16] <toad_> ooooh
[16:16] <toad_> wtf?
[16:17] <nextgens> you didn't merge my mandatory patch, did you ?
[16:17] <toad_> hmmm perhaps
[16:17] <toad_> SVN rev?
[16:17] <nextgens> the one with the ssl-exception
[16:17] <nextgens> I don't remember
[16:17] <toad_> NotImplementedException ? I did merge that one
[16:17] <nextgens> well, that should be the one
[16:18] <nextgens> find out what's going on then :)
[16:19] <toad_> $ grep -ir NotImplemented src/
[16:19] <toad_> toad@servalan:/usr/src/cvs/eclipse-workspace/Freenet 0.7 (db4o)$
[16:19] <toad_> :|
[16:19] <nextgens> nextgens@emu:~$ jar tvf public_html/freenet-ext-db4o.jar |grep WrapperL 249 Mon Aug 18 19:39:48 UTC 2008 org/tanukisoftware/wrapper/WrapperListener.class
[16:20] <toad_> ah i didn't copy the file to the right place
[16:20] <toad_> doh
[16:20] <toad_> EPEBKAC :)
[16:21] <nextgens> we should release asap so that people update their ext to #21
[16:22] <nextgens> it has a few really important fixes
[16:22] <nextgens> the bucket-code probably need some tweaking
[16:22] <nextgens> but we will see that with time
[16:22] <toad_> ok
[16:23] <toad_> well if it seems to be working then release it
[16:23] <toad_> assuming nobody here wants to test trunk?
[16:23] <toad_> Cooo: testing trunk ??
[16:23] <toad_> we know with some certainty that 1158 has fairly serious problems...
[16:23] <toad_> as long as update works, 1159 should be an improvement
[16:24] <nextgens> did you review up to head yet?
[16:24] * nextgens hasn't reviewed sdiz's changes
[16:24] <toad_> not since saturday and not outside of support/io/
[16:24] <nextgens> ok
[16:24] <nextgens> will do then
[16:24] * toad_ is willing to review and release if needed, but it would be more efficient if you do it
[16:24] <nextgens> on trunk we don't do full GCs
[16:25] <nextgens> we have 2 over a 10min session
[16:25] <toad_> we hardly ever do them on the db4o branch nowadays
[16:25] <toad_> hmmm wtf
[16:25] <toad_> now it's doing them
[16:25] <toad_> it must be your jar!
[16:25] <nextgens> hot spots GC wise are the located in FNPPacketMangler
[16:26] <toad_> it stopped now
[16:26] <toad_> anyway they weren't constant
[16:26] <toad_> every 10 seconds or so, like normal GCs
[16:26] <nextgens> we swap a lots of bytes[] around now
[16:26] <nextgens> normal GCs are cheap, right?
[16:26] <toad_> 11 of them over a 79 second period
[16:26] <toad_> yeah normal GCs are *reasonably* cheap
[16:26] <nextgens> how can we reduce the cpu usage problem?
[16:26] <toad_> they don't block the JVM
[16:27] <toad_> at least they block the JVM for like a millisecond or two
[16:27] <toad_> otoh they do involve some independant CPU
[16:27] <toad_> nextgens: good question
[16:27] <toad_> nextgens: do some profiling?
[16:27] <toad_> what are the hot spots?
[16:27] <toad_> you said something about FNPPacketMangler, what exactly are we doing there?
[16:27] <nextgens> we did 100 minor collections in 5mins
[16:28] <toad_> well that's one every 3 seconds ... that's more than I see on the db4o branch
[16:28] <nextgens> toad_> we create and destroy byte arrays
[16:28] <toad_> nextgens: a few per packet received or sent, right?
[16:28] <toad_> we could reuse a single array per receiver thread - but is it worth it?
[16:29] <toad_> well not a single array but something like 3
[16:29] <nextgens> PacketSender.run() is 27% of the number of GCed objects
[16:29] <toad_> but we'd need to copy when we get a Buffer or something
[16:29] <toad_> but then iirc we already need to copy there
[16:29] <nextgens> 23% is FNPPacketMangler
[16:29] <toad_> welll.... how much of your cpu usage is caused by garbage collection?
[16:29] <nextgens> next step is 3%
[16:30] <nextgens> I dunno
[16:30] <nextgens> the tool doesn't monitor that
[16:30] <nextgens> I can say how much time it spent in GC but that's it
[16:30] <toad_> hmmm?
[16:30] <toad_> well that's enough isn't it?
[16:30] <nextgens> let's see if I can find how much cpu time it took in total
[16:31] <nextgens> 0.05
[16:31] <nextgens> I guess it's in seconds
[16:31] <nextgens> that's for the gc
[16:31] <toad_> 0 minutes 5 seconds?
[16:31] <toad_> or 0.05 seconds?
[16:31] <nextgens> 1.19 in total for the application
[16:31] <nextgens> so GC is negligible
[16:31] <toad_> ok so we're into CPU profiling now
[16:32] * nextgens starts the cpu profiling on the fly
[16:32] <toad_> w.r.t. targetting embedded stuff, i would point out that most embedded stuff nowadays have hardware crypto acceleration
[16:32] <nextgens> which we are unlikely to use
[16:32] <toad_> well it's the user's responsibility
[16:33] <toad_> but on e.g. VIA hardware, there's a plugin for the JVM for it
[16:33] <nextgens> we don't do benchmarks
[16:33] <toad_> of course that requires we use the JVM crypto classes...
[16:33] <nextgens> if the native libs are there we use them
[16:33] <toad_> which atm we don't
[16:33] <nextgens> hehe ;)
[16:33] <toad_> we only use the JVM SHA256 iirc
[16:33] <toad_> because of export issues with 1.5 that go away with 1.6
[16:34] <toad_> anyway if we hear of people using it on VIA chips we can fix that
[16:34] <nextgens> profiling says that the wrapper's cpu-hungry
[16:34] * toad_ wonders if atom, arm etc recent stuff have hardware crypto
[16:35] <toad_> fascinating, what's it doing?
[16:35] <nextgens> WrapperManager.handleSocket() is calling DataInputStream.readByte()
[16:35] <nextgens> might be an instrumentation problem though
[16:36] <toad_> hmmm
[16:36] <toad_> well is it blocking, or is it timing out, getting a -1 and trying again?
[16:36] <nextgens> probably retrying
[16:36] <nextgens> otherwise it wouldn't account here
[16:36] <nextgens> do you have the wrapper's source code handy ? :p
[16:36] <toad_> it wouldn't? it ignores I/O blocking?
[16:37] <nextgens> that's 94% of the cpu time spent
[16:37] <nextgens> I can't belive it
[16:37] <toad_> seems extremely unlikely
[16:37] <nextgens> yeah
[16:38] <nextgens> the executor would be 5%
[16:38] <nextgens> and NativeThread.run 1%
[16:38] <toad_> hmmm?
[16:38] <toad_> hmmm
[16:38] <Cooo> Seems like my r22303 node got stuck on Wiping old database for chk-store- nothing more has been written to wrapper.log for almost 45mins :(
[16:38] <nextgens> MessageCore.checkFilters( is a hot-spot
[16:38] <toad_> Cooo: get a stack dump
[16:39] <toad_> nextgens: i've seen that before :|
[16:39] <nextgens> then crypto
[16:39] <nextgens> then the logger
[16:39] <toad_> woah
[16:39] <toad_> MessageCore.checkFilters *BEFORE* crypto ?!
[16:39] <nextgens> then it's negligible
[16:40] <nextgens> apparently, yes
[16:40] <toad_> very bad!
[16:40] <toad_> you may have to devise a more sophisticated data structure to speed it up
[16:40] <toad_> e.g. one queue per message type or something and only check the queue for the message type you got
[16:40] <nextgens> seems weird though
[16:41] <toad_> well at the moment we check every incoming message against every message filter ...
[16:41] <toad_> so it's conceivable
[16:41] <nextgens> on FNPM.tryProcess we have :
[16:41] <nextgens> 282ms on processDecryptedData
[16:42] <nextgens> and only 16ms on PCFB.*
[16:42] <Cooo> urrrhm.. Whats the command to get a stack dump from a console?
[16:42] <toad_> nextgens: and the rest?
[16:42] <nextgens> rest is negligible
[16:42] <toad_> Cooo: kill -QUIT `cat Freenet.pid`
[16:42] <nextgens> 339ms in total for that method
[16:42] <toad_> nextgens: so 200ms+ in MessageCore.checkFilters?
[16:42] <nextgens> 255ms on CheckFilters
[16:43] <nextgens> 99ms on NodeDispatcher.handleMessage
[16:43] <nextgens> meaning that yeah; checkfilters is a damn big hot spot :)
[16:43] <toad_> at least after your node has been up for a reasonable time
[16:43] <toad_> well there are various obvious optimisations for it
[16:44] <toad_> are you sure it's real CPU and not blocking for locks?
[16:44] <nextgens> no I'm not but I can check
[16:44] <toad_> also are you sure it's not calling callbacks etc?
[16:44] <nextgens> hold on
[16:44] * Mathiasdm (n=Mathias@) Quit ("Invisible Internet Project: http://www.i2p2.de")
[16:45] <Cooo> here is the stack dump http://code.bulix.org/7w5m5o-68230?raw
[16:45] <toad_> Cooo: it's still trying to delete the database
[16:46] <toad_> Cooo: the best way to speed it up is to shutdown, rm -Rf datastore/database-*, and restart
[16:46] <nextgens> PacketSender.wakeUp() is blocking everyone too
[16:46] <toad_> then of course it will have to reconstruct ALL of the datastores
[16:46] <nextgens> we should try to reduce locking there
[16:46] <toad_> isn't that just a notify?
[16:47] <Cooo> Seems like it is still just hanging..
[16:47] <toad_> Cooo: any disk i/o?
[16:47] <Cooo> will delete the database and retry
[16:47] <toad_> Cooo: if it's hanging then it's not our fault :(
[16:47] <nextgens> toad_> that one is but there must be a nested-locking involved in the class too
[16:47] <Cooo> No obvious I/O
[16:47] <nextgens> toad_> the profiler monitors accesses to the monitor of the class
[16:49] * nextgens has a look to the wrapper's code first
[16:50] <toad_> nextgens: quite possible
[16:50] <toad_> yeah if it is a wrapper bug then we really need to fix it
[16:50] <nextgens> I'm not sure yourkit's license allow us to profile their code
[16:51] <nextgens> but imho it's an instrumentation problem
[16:51] <nextgens> the agent is started from the wrapper
[16:51] <toad_> then ignore it
[16:51] <nextgens> maybe tht's what it doesn't like
[16:52] <Cooo> Deleted tha database dir and started the node again. Now it's reconstructing like it should
[16:56] <toad_> nextgens: i suggest you release 1159 before you start on any ambitious optimisations
[16:56] <nextgens> hehe
[16:58] * cdent_ is now known as cdent
[17:06] * pmpp (n=pmpp@) Quit (Read error: 104 (Connection reset by peer))
[17:09] * cdent (n=cdent@) Quit ("l8r")
[17:14] * pmpp (n=pmpp@) has joined #freenet
[17:14] * Zarggg (n=z@) has joined #freenet
[17:23] * batosai (n=julien@) has joined #freenet
[17:23] * ChanServ sets mode +v batosai
[17:50] <FreenetLogBot> r22306 (1159) was built successfully on emu, mirrors are updating
[17:52] * NEOatNHNG (n=neo@) Quit (Read error: 110 (Connection timed out))
[17:55] * cdent (n=cdent@) has joined #freenet
[18:00] <toad_> 1159 is out
[18:06] * Luke771 (n=luke@) has joined #freenet
[18:06] * ChanServ sets mode +v Luke771
[18:11] * HyperDimension (n=me@) has joined #freenet
[18:11] * HyperDimensional (n=me@) Quit (Read error: 110 (Connection timed out))
[18:21] <kork> toad, will the new freenet-ext be fetched even if not using wrapper/updater script?
[18:48] * phrosty (n=phrosty@) Quit ("He who asks a question is a fool for five minutes; he who does not ask a question remains a fool forever.")
[18:54] * mpp (n=user@) has joined #freenet
[18:55] <mpp> hey there
[18:55] <mpp> got a question regarding inserting content into freenet
[18:55] <mpp> does freenet provide sender / receiver anonymity ?
[18:56] * cdent_ (n=cdent@) has joined #freenet
[18:59] <smariot> it's based on plausible deniability - you might be the one uploading/downloading, but more than likely, you're doing it on behalf of another node.
[18:59] <smariot> in any case, when set up as a darknet as it was intended, the only people capable of seeing what your node is uploading/downloading is your friends.
[19:03] <Luke771> wait
[19:03] <Luke771> what you mean sender/reciever anonymity?
[19:05] <Luke771> usually you don't send a file to a single recipient, you upload content as if freenet were a server; then you have a decrypting key to get that content off freenet. If you publish the key, anyone gets to download the content, if you send the key to one person only, that person only will be able to download the content that you uploaded
[19:06] <Luke771> so I guess it depends on how you transmit the key to your recipient; ifd you want only one person or group to have access to your content, an encruypted mail should do (or a freemail, for that matter)
[19:08] <mpp> i mean inserting content into freenet
[19:08] <Luke771> and the darknet/opennet thing has nothing to do with this. Peers are only to get you connected to the network, they have nothing to do with your content (uploads or downloads) in theory they shouldnt even be able to tell what you download or upload.. In practice they can figure out stuff, that's why you want your darknet peers to be trusted, but figuring out what you DL/UL isn't easy, and if you don't make stupid mistakes it's quite di
[19:08] <Luke771> fficult
[19:08] <mpp> or retreiving it
[19:08] <Luke771> if you insert content into freenet, it's impossible to tell that you did
[19:08] <Luke771> or, it should be, in theory
[19:08] <Luke771> same for downloading
[19:09] <Luke771> in practice, you are kind of vulnerable to your peers
[19:10] <Luke771> but as long as you can trust your peers not to spy on you (which isnt easy to do anyway) telling what you upload or download is very, very difficult
[19:10] <Luke771> unless of yourse yu give yourself away wiith some stupid mistake
[19:12] <Luke771> for instance if you upload a file and publish the key in FMS with an identity called 'mpp' some would think that it's probably the same guy who was on irc as mpp, and would start investigating from that assumption. That's only one of the many hints you can give an adversary
[19:12] <Luke771> usually, the greatest security risk in freenet is user stupidity
[19:12] * cdent (n=cdent@) Quit (Read error: 113 (No route to host))
[19:17] * cdent_ is now known as cdent
[19:21] * pmpp\pas-la (n=pmpp@) has joined #freenet
[19:22] * pmpp (n=pmpp@) Quit (Nick collision from services.)
[19:22] * pmpp\pas-la is now known as pmpp
[19:22] <infinity0> ain't it always ;)
[19:22] <toad_> kork: yes, it will be fetched through update over freenet
[19:23] <kork> will it replace the current file?
[19:24] * HyperDimensional (n=me@) has joined #freenet
[19:40] * HyperDimension (n=me@) Quit (Read error: 110 (Connection timed out))
[19:56] * Luke771 (n=luke@) Quit ("[add smart/funny quote here]")
[20:00] * sbc (n=ca@) Quit ("Ex-Chat")
[20:15] * Ricket (n=a@) has joined #freenet
[20:15] <Ricket> Are there any port triggering settings I can set for freenet, instead of port forwarding? i use DHCP because I'm on a laptop and I avoid port forwarding whenever i can... any recommendations or known outbound ports that I can use for the trigger?
[20:18] <nextgens> use upnp :)
[20:18] <Tommy[D]> if it would be that easy, any isp could use it against its users too :)
[20:19] * nico_32 (n=user@) Quit ("Ex-Chat")
[20:19] <kork> apparenty, it's not downloading the new freenet-ext
[20:19] <Ricket> hmm, upnp is enabled on my router... can i ignore the error message then?
[20:19] <kork> it's merely telling me to update it
[20:20] <Tommy[D]> Ricket: Is the upnp plugin loaded?
[20:20] <toad_> Ricket: what error message?
[20:20] <Ricket> "Connection problems: Please forward UDP port 31637"
[20:20] <Ricket> Tommy[D]: no idea. i installed it, how do I know if it's loaded?
[20:20] <Ricket> oh the plugins page -_-
[20:20] <Ricket> yes it's loaded
[20:21] <Ricket> hmm, it forwarded 60741 but not 31637
[20:21] <Ricket> is that an error or just informational?
[20:21] <Ricket> ah, there
[20:21] <toad_> Ricket: it is hard for freenet to determine whether a port has been successfully forwarded
[20:22] <Ricket> i reloaded the plugin and then it forwarded both successfully. problem solved!
[20:22] <toad_> many UPnP capable devices either get it wrong (because of being behind another one), or lie, etc etc
[20:22] <toad_> so it's informational
[20:22] <toad_> and yes we need to have more accurate detection, and get rid of it
[20:24] <Ricket> now another question... how do I open a freenet: URL?
[20:25] <Ricket> haha i always ask questions too early. i found it, the "Key" box on the Home of the freenet interface...
[20:25] <Ricket> i think i'll go now before i ask any more stupid questions :) thanks for the help!!
[20:25] <toad_> type it into fproxy's open box, or add http://127.0.0.1:8888/ to its beginning and open it in your browser
[20:25] <toad_> :)
[20:26] * Ricket (n=a@) has left #freenet
[20:29] <nextgens> would you say "wider testing" or "broader testing" ?
[20:37] * smariot (n=smariot@) has left #freenet
[20:45] * Johan^mlg (n=bllarf@) Quit ("Miranda IM! Smaller, Faster, Easier. http://miranda-im.org")
[20:57] <FreenetLogBot> r22317 (1159) was built successfully on emu, mirrors are updating
[21:00] * none_dito (n=None@) has joined #freenet
[21:02] <none_dito> what's going on guys? i just installed freenet.. is there a place to gran a list of freenet nodes? or do i connect to strangers?
[21:02] <none_dito> gran=grab
[21:03] <nextgens> none_dito> enable opennet
[21:05] <none_dito> alright.. i'll check it out..
[21:06] * batosai (n=julien@) Quit ("Ex-Chat")
[21:18] <FreenetLogBot> r22322 (1159) was built successfully on emu, mirrors are updating
[21:28] * Mathiasdm (n=Mathias@) has joined #freenet
[21:29] * dbkr (n=dbkr@) has joined #freenet
[21:29] * ChanServ sets mode +o dbkr
[21:40] * mpp (n=user@) Quit ("Ex-Chat")
[21:40] * Caco_Patane (n=caco@) has joined #freenet
[21:42] * caytchen (n=caytchen@) Quit ("Verlassend")
[21:42] * Caco_Patane (n=caco@) Quit (Client Quit)
[21:42] * Caco_Patane (n=caco@) has joined #freenet
[21:43] * Caco_Patane (n=caco@) Quit (Client Quit)
[21:49] * apterium (n=apterium@) has joined #freenet
[21:58] <FreenetLogBot> r22323 (1159) was built successfully on emu, mirrors are updating
[22:10] <FreenetLogBot> r22324 (1159) was built successfully on emu, mirrors are updating
[22:14] * Mathiasdm (n=Mathias@) Quit ("Invisible Internet Project: http://www.i2p2.de")
[22:16] <FreenetLogBot> r22325 (1159) was built successfully on emu, mirrors are updating
[22:16] * mpp (n=user@) has joined #freenet
[22:19] <FreenetLogBot> r22326 (1159) was built successfully on emu, mirrors are updating
[22:19] <mpp> hey can someno tell why my outgoing bw is never reached
[22:20] <nextgens> 'cause your peers wouldn't know how to use it?
[22:20] <mpp> hm...
[22:20] <mpp> thats awesome
[22:21] <mpp> so no use for a colo sever
[22:21] <mpp> (colocated that is)
[22:25] <FreenetLogBot> r22327 (1159) was built successfully on emu, mirrors are updating
[22:26] <nextgens> mpp> if your friends can get one too it might use it :)
[22:27] <mpp> right
[22:28] <mpp> so any benefits from fast nodes ?
[22:28] <nextgens> well fast nodes will process requests faster
[22:29] <nextgens> that should help lowering the median ping time
[22:29] <nextgens> which should allow the nodes to process more requests faster
[22:29] <nextgens> even on other nodes
[22:30] <mpp> right
[22:30] <mpp> does it help uploading faster into the network ?
[22:30] <nextgens> no; you're limitated by your friends, remember?
[22:31] <mpp> ah - okay
[22:32] * cdent (n=cdent@) Quit ()
[22:52] <FreenetLogBot> r22329 (1159) was built successfully on emu, mirrors are updating
[22:58] <FreenetLogBot> r22330 (1159) was built successfully on emu, mirrors are updating
[23:01] <FreenetLogBot> r22331 (1159) was built successfully on emu, mirrors are updating
[23:04] <FreenetLogBot> r22332 (1159) was built successfully on emu, mirrors are updating
[23:06] * ahuxley (n=ahuxley@) has joined #freenet
[23:12] * zerwas (n=zerwas@) has joined #freenet
[23:12] <mpp> is there any way to increase the limit of 20 nodes ?
[23:12] <mpp> rebuild the source ?
[23:18] <nextgens> no
[23:18] <nextgens> you shouldn't do it
[23:18] <nextgens> nor even attempt to do it
[23:20] <mpp> whoo
[23:20] <FreenetLogBot> r22333 (1159) was built successfully on emu, mirrors are updating
[23:22] <mpp> because ... ?
[23:23] * NEOatNHNG (n=neo@) has joined #freenet
[23:25] <nextgens> because the network and routing can't work if nodes don't have the same amount of links on average
[23:25] <FreenetLogBot> r22334 (1159) was built successfully on emu, mirrors are updating
[23:25] <FreenetLogBot> r22335 (1159) was built successfully on emu, mirrors are updating
[23:25] * StefftheEmperor_ (n=Steffthe@) has joined #freenet
[23:31] <FreenetLogBot> r22336 (1159) was built successfully on emu, mirrors are updating
[23:34] <FreenetLogBot> r22337 (1159) was built successfully on emu, mirrors are updating
[23:36] <mpp> so dont' tell anybody ?
[23:36] <mpp> hm..
[23:36] <zerwas> ;-)
[23:37] <toad_> any of the default freesites been updated?
[23:37] <toad_> anyone got edition numbers?
[23:40] <FreenetLogBot> r22338 (1159) was built successfully on emu, mirrors are updating
[23:42] * StefftheEmperor (n=Steffthe@) Quit (Read error: 110 (Connection timed out))
[23:49] <FreenetLogBot> r22339 (1160) was built successfully on emu, mirrors are updating

Irc logs of #freenet : 2008 2007 2006 2005

These logs were automatically created by FreenetLogBot on chat.freenode.net using the Java IRC LogBot.