Back to Home / #linode / 2008 / 03 / Prev Day | Next Day
#linode IRC Logs for 2008-03-13

---Logopened Thu Mar 13 00:00:02 2008
---Daychanged Thu Mar 13 2008
00:00<JasonF>I've suggested a quadrillion times that linode peoples provide a portage tree over NFS
00:00<JasonF>I might would still be using gentoo if they did
00:01<guinea-pig>mmm, i should play with gentoo again
00:01<guinea-pig>haven't played in a couple years now
00:02<Talman>Do they pay for bandwidth between boxes in the racks?
00:03<JasonF>nah, that's local
00:04<martinisoft>Yeah the prospect of compiling everything is making me not select Gentoo
00:04-!-clanehin [] has quit [Ping timeout: 480 seconds]
00:04<martinisoft>so now its a tie between Slackware and Ubuntu
00:05<Talman>mwalling loves him some slack.
00:05<booja>martinisoft: I use slack, I know mwalling does too
00:05<martinisoft>I'll probably go with Ubuntu because its very newbie friendly, but Slackware's hardline approach to sysadmining is very appealing
00:06<booja>just be aware that the linode slack12 image is missing quite a log of stuff
00:06<martinisoft>yeah its *very* small, which seems nice
00:06<booja>first thing is to install slackpkg and point it at a mirror :)
00:06<martinisoft>I'd rather start with a base, clean image
00:07<booja>there's clean, and there's unfunctional
00:08<Talman>There's clean and there's "you get sh."
00:09<booja>if you're lucky, bash'ed :P
00:12<martinisoft>by clean I mean base packages, shell and compiling tools, nothing else
00:12-!-john [] has quit [Remote host closed the connection]
00:12<martinisoft>enough to start a custom web stack
00:12<martinisoft>I want nginx and mysql
00:12<Talman>Do you have compiling tools on their slack gimmick, booja? :)
00:13<martinisoft>mostly because I've come to hate Apache
00:13<Talman>Or are you getting to import those.
00:13*Talman has no problems with apache, but you are doing rails.
00:13<martinisoft>I come from the Solaris/BSD world, so Linux is... yeah different
00:21<martinisoft>ive avoided linux mainly because of the range of distros and packaging systems
00:21<martinisoft>I'm mainly looking for a clean and easy to maintain distro
00:22-!-marvinp [] has joined #linode
00:22<guinea-pig>apt-get install happiness
00:24<booja>umm, no I had to install the dev tools
00:25<booja>and man
00:25<booja>and syslog
00:25<booja>and a bunch of other stuff
00:25<booja>like I said, slackpkg is greaty
00:25<Talman>No syslog?
00:25<martinisoft>so theres a lot of stuff to get started I take it
00:25<Talman>Sounds like a stage 2 gentoo.
00:25<martinisoft>any good getting started posts in the forums?
00:26<booja>slackpkg install syslogd
00:26<booja>not too hard to fix at least
00:28<martinisoft>so to get started on slack, what should I do the first thing it comes up?
00:30<Bdragon>enter username
00:30<Bdragon>enter password
00:30<booja>get cookies
00:31<martinisoft>Bdragon: way ahead of ya there =p
00:31<martinisoft>booja: check
00:31*Bdragon would opt for "install cvs and bootstrap pkgsrc"
00:31<booja>install slackpkg
00:32<booja>and point it at a slackware mirror
00:32<martinisoft>its not there by default?
00:33<Bdragon>Heh, slackware was REAL fun back when the system wget was broken due to missing libs... I think I ended up pasting stuff into a terminal and uudecoding it...
00:33-!-ondrej [] has quit [Quit: Leaving]
00:34<booja>no, it's not a default package
00:34*JasonF is about to write a nagios check
00:35<JasonF>for io tokens
00:36<booja>io io so off to work I go
00:37-!-SNy [] has quit [Read error: Connection reset by peer]
00:37<martinisoft>got it installed
00:38<booja>give it a mirror to point at, in my case I use
00:39<booja>it's in /etc/slackpkg/mirrors
00:40<booja>then do slackpkg update to pull in the package lists
00:40<booja>then just slackpkg search name
00:40<booja>easy peasy
00:40<martinisoft>so why slackpkg over installpkg?
00:41<booja>installpkg only installs packages that you have already downloaded
00:41<booja>slackpkg downloads them, then runs installpkg
00:42<martinisoft>ah nice
00:42<martinisoft>no dep checking though still right?
00:42<martinisoft>i'd need pkg-src for that
00:42-!-atourino [~Antonio@] has left #linode [Leaving.]
00:44<booja>no not really
00:45<booja>but that's ok, I haven't had too many issues working out what I needed
00:45<booja>oh the other cool thing, you can tell it to install an entire disk set
00:46<martinisoft>will it scream at me about dependency issues at least so I can resolve them?
00:48<booja>don't recall
00:49<martinisoft>its ok
00:49<booja>really though, if you want dep checking, you want a different distro :P
00:49<martinisoft>well dep checking on those is a double edged sword
00:49<@linbot>New news from forums: IO Token checking nagios plugin in Performance and Tuning <>
00:50<martinisoft>I'd like one that checks, but doesnt do it for me unless I explicitly tell it so
00:53-!-^GaveUp^ [] has joined #linode
00:55-!-TheFirst [] has quit [Ping timeout: 480 seconds]
00:55-!-lakin [] has joined #linode
00:55-!-lakin [] has quit []
01:05<martinisoft>thanks again for the help
01:05-!-martinisoft [~martiniso@] has quit [Quit: bbl]
01:15-!-^GaveUp^ [] has quit [Ping timeout: 480 seconds]
01:27<INternat>network issues?
01:28<iggy>none to dallas or fremont
01:31<INternat> had issues talking to .. i can nenver remember whichi s in which dc
01:32<iggy>I should have said right then
01:33<iggy>I don't know about earlier
01:33<iggy>there was something up in Dallas day before yesterday I think
01:33<iggy>if you are referring to that far back
01:33<INternat>im refering to about 10-15 mins ago
01:33<INternat>unforunatly i dont have a mtr trace
01:34<iggy>I didn't notice anything, but I'm not logged into either server right now
01:35<INternat>i need to get sms notifications set back up so i can get a better response and log in and look
01:35<iggy>actually I am logged in to fremont and it didn't drop the connection
01:35<iggy>or just have your monitoring software run mtr
01:35<INternat>yeah, im usting nagois2
01:36<INternat>i got hits on pop/smtp/ftp failing
01:37-!-cmarcelo [~cmarcelo@] has quit [Quit: Leaving]
01:38<INternat>i suppose i could possibly make it run a command when something fails.. * ponders*
01:42<INternat>heheh yeah ive read that
01:42<iggy>you just had to mention
01:42<iggy>now I'll be up till 5am hitting random
01:43<encode>it was an accidental paste anyway - sorry
01:48-!-pfein-away [] has quit [Ping timeout: 480 seconds]
01:55-!-marvinp [] has quit [Remote host closed the connection]
01:56-!-webPragmatist [] has joined #linode
02:23-!-Schroeder [] has quit [Ping timeout: 480 seconds]
02:43-!-row [] has joined #linode
02:50-!-irgeek [] has joined #linode
02:58-!-ankur [3bb498db@] has joined #linode
03:15-!-sdjv100 [] has joined #linode
03:15-!-sdjv100 is now known as sveiss
03:33-!-andrew_j_w [] has quit [Quit: Konversation terminated!]
04:01-!-dpn` [~tripped@] has joined #linode
04:08-!-webPragmatist [] has quit [Quit: Leaving.]
04:23-!-irgeek [] has quit [Read error: Connection reset by peer]
04:23-!-irgeek [] has joined #linode
04:24-!-sveiss [] has quit [Remote host closed the connection]
04:29-!-glenk [] has quit [Ping timeout: 480 seconds]
04:32-!-mattbnz [~mattb^] has quit [Quit: mattbnz]
04:32-!-mattbnz [~mattb^] has joined #linode
04:34-!-getsmart [] has joined #linode
04:43-!-INternat [] has quit [Ping timeout: 483 seconds]
04:55-!-pfein-away [] has joined #linode
04:56-!-pfein-away is now known as pfein
04:58<pfein>how do i config postifx on ubuntu?
04:58<rick111>hehe! ask google
04:59<irgeek>pfein: The files are in /etc/postfix
05:10<@linbot>New news from forums: Syslog monitoring in General Discussion <>
05:11-!-pfein [] has quit [Ping timeout: 480 seconds]
05:12-!-metaperl [] has quit [Ping timeout: 480 seconds]
05:12-!-SNy [] has joined #linode
05:21-!-getsmart [] has quit [Quit: Ex-Chat]
05:47-!-agentbleubleu [] has joined #linode
05:47<agentbleubleu>morning all
05:48<agentbleubleu>just having my morning oom attack
05:49<agentbleubleu> this is the top, starting at 5.30 it starts to go oom.
05:51<agentbleubleu>I have removed as many modules from enabled as poss and stopped all unnecessary modules in virtualmin.
05:53<encode>simple solution? add extra ram
05:55<agentbleubleu>yes, i will when its availible next week
05:55<agentbleubleu>but something (cron)? is making it have intermittent fits
05:56<irgeek>It sounds to me like there's a memory leak. My Linode 360 runs all services for half a dozen domains and my swap in/out are zero.
05:56<irgeek>I'd suggest watching memory & swap usage over time to see how it's changing.
05:56<agentbleubleu>i do, it changes dramatically
05:57<encode>agentbleubleu: you're not running any java apps, or a GUI, are you?
05:57<agentbleubleu>with no regard to traffic
05:57<irgeek>Do you have graphs of how it's changing?
05:57<agentbleubleu>virtualmin is what i use to control it
05:58<agentbleubleu>in virtualmin the graphs dont change,
05:58<agentbleubleu>from the panel at linode I have some, but they just show cpu and that does not seem to crash at the same time
05:59<agentbleubleu>but cpu has been up at 100 % in last day
05:59<agentbleubleu>in one short spike
06:00<agentbleubleu>in top there are loads of these ksoftirqd/0 migration/3
06:06-!-Dreamer3 [] has joined #linode
06:10-!-metaperl [] has joined #linode
06:10-!-hpj [] has quit [Ping timeout: 480 seconds]
06:11-!-hpj [] has joined #linode
06:24-!-metaperl [] has quit [Ping timeout: 480 seconds]
06:24<rick111>anyone ever had this when using mod_security on centos 5? /etc/httpd/modules/ undefined symbol: ap_get_server_banner
06:25-!-Minty [] has joined #linode
06:25-!-metaperl [] has joined #linode
06:26<Minty>Hi, is there a graphics driver that wuld work on X on a 360 linode that would perform better than the default?
06:27-!-Internat [] has joined #linode
06:28<irgeek>Minty: UML doesn't have a video card, so there's no graphics driver.
06:28<Minty>I see, thanks anyway
06:31<irgeek>If you're using an x server + vnc to access your Linode, what x server are you using?
06:36<Minty> The ubuntu package
06:36<Minty>anyway, I'm at school atm and have to go :)
06:36-!-Minty [] has left #linode []
06:45-!-mattbnz [~mattb^] has quit [Ping timeout: 480 seconds]
06:47<rick111>anyone know what mod, or install I need so 'ap_get_server_banner' is NOT undefined?
06:54-!-mattbnz [~mattb^] has joined #linode
06:56-!-metaperl [] has quit [Ping timeout: 480 seconds]
07:19<booja>it's a perl thing, yes?
07:19-!-scipio [~scipio@] has quit [Ping timeout: 480 seconds]
07:22<rick111>think so, let me look at that page, I have come across that page in my searches toda
07:26-!-dpn` [~tripped@] has quit [Quit: Leaving]
07:27<rick111>fixed it, thanks
07:31-!-TheFirst [] has joined #linode
07:48-!-atourino [~Antonio@] has joined #linode
07:56-!-hp1 [] has joined #linode
08:01-!-hpj [] has quit [Ping timeout: 480 seconds]
08:08-!-TheFirst [] has quit [Ping timeout: 480 seconds]
08:17-!-hp1 [] has quit [Ping timeout: 480 seconds]
08:19-!-linville [] has joined #linode
08:22-!-metaperl [] has joined #linode
08:37*caker rematerializes
08:38<praetorian>ok, send in the noobs
08:40-!-ondrej [] has joined #linode
08:43-!-Irssi: #linode: Total of 105 nicks [3 ops, 0 halfops, 0 voices, 102 normal]
08:49-!-h00s_ [] has joined #linode
08:50-!-ankur [3bb498db@] has quit [Quit: ajax IRC Client]
08:51-!-h00s [] has quit [Ping timeout: 480 seconds]
08:53-!-mattbnz [~mattb^] has quit [Ping timeout: 480 seconds]
08:59-!-Bass10 [] has joined #linode
09:02-!-mattbnz [~mattb^] has joined #linode
09:02-!-ankur [3bb48463@] has joined #linode
09:23<mwalling>roast beef
09:24<@linbot>caker: Linode360 - 41, Linode540 - 2, Linode720 - 0, Linode1080 - 0, Linode1440 - 0
09:29-!-cmarcelo [~cmarcelo@] has joined #linode
09:37-!-atourino [~Antonio@] has left #linode [Leaving.]
09:42-!-getsmart [] has joined #linode
10:01-!-Dreamer3 [] has quit [Quit: Leaving]
10:02<mwalling>has anyone ever set dovecot up to do a mixed local/virtual setup?
10:08-!-Bass10 [] has quit [Ping timeout: 480 seconds]
10:14-!-Bass10 [] has joined #linode
10:17-!-hpj [] has joined #linode
10:25-!-atourino [~Antonio@] has joined #linode
10:29-!-lakin [] has joined #linode
10:29<irgeek>mwalling: Can't the local delivery just be one of the virtual domains?
10:29<mwalling>not sure
10:29<mwalling>better question: can i use both /etc/passwd and a mysql table for auth?
10:33<irgeek>Oh, that. If dovecot is using PAM you can tell PAM to try both. Otherwise, I'm not sure.
10:33<iggy>afaik, yes
10:44-!-lakin [] has quit [Ping timeout: 480 seconds]
10:48-!-Dreamer3 [] has joined #linode
10:49-!-pfein [] has joined #linode
10:51-!-busycc [] has joined #linode
10:55-!-lakin [] has joined #linode
10:56<rick111>if I'm using crontab to auto load a page which requires authentication, how do I pass the authentication?
10:56<rick111>http://localhost|user:pass or something like that I guess?
10:57<@caker>wget has args to pass that stuff, too
10:57<JDLSpeedy>I think its like http://username:pass@localhost/
10:57<rick111>thank you!
11:00-!-zeph [] has joined #linode
11:01<irgeek>Or put it into a file and feed that to wget so the auth info doesn't show up in ps
11:01-!-busycc4 [~busycc@] has joined #linode
11:02<JDLSpeedy>ahh ya, 'wget `cat file`'
11:02<JDLSpeedy>file would contain http://username:pass@localhost/
11:02<mikegrb>I keep all of my auth info on a billboard on the way home from work
11:02<Bdragon>I vaugely remember something about putting it in your .netrc as well...
11:02<mikegrb>that way I don't forget anything
11:03<Bdragon>Might only be used for ftp creds though
11:03<Bdragon>Nope, looks like wget honors netrc for http as well
11:03<busycc4>any of support?
11:03<Bdragon>and you can use .wgetrc as well as .netrc
11:03<busycc4>bill support...
11:04<JDLSpeedy>busycc4: there around somewhere
11:04-!-pfein is now known as pfein-away
11:04-!-getsmart [] has quit [Ping timeout: 480 seconds]
11:04<Bdragon>mikegrb and caker are active in channel at the moment
11:04<Bdragon>mikegrb, where went your
11:05-!-pfein-away is now known as pfein
11:05<irgeek>JDLSpeedy: bash expands stuff in backticks before starting spawning a process
11:05<Bdragon>Safest route is probabaly the .netrc / .wgetrc method
11:05<mikegrb>Bdragon: I am incognito
11:05<JDLSpeedy>guess that example don't work, heh
11:06<JDLSpeedy>and chmod it to 600
11:06<Bdragon>Hmm, that's an interesting idea:
11:06<Bdragon>Quoting the manpage:
11:06<Bdragon>If the passwords are really important, do not
11:06<Bdragon> leave them lying in those files either---edit the files and delete
11:06<Bdragon> them after Wget has started the download.
11:07<Bdragon>also, you can set the WGETRC env var to override where it looks for .wgetrc...
11:08-!-pfein is now known as pfein-away
11:08-!-getsmart [] has joined #linode
11:08<Bdragon>so you can write the creds to an arbitrary file and then WGETRC=~/foo wget http://.....
11:11-!-pfein-away is now known as pfein
11:12<agentbleubleu>ref my oom prob, in my syslog i see it started with Mar 13 05:30:48 li6-87 kernel: oom-killer: gfp_mask=0x201d2, order=0 . I have found this : which suggests a patch. This is way out of my depth, could anyone pass comment?
11:13-!-busycc4 [~busycc@] has quit [Quit: busycc4]
11:15<mikegrb>agentbleubleu: that patch says it is to fix a bug in 64bit systems which your Linode is not
11:15<agentbleubleu>thanks mike
11:16<Bdragon>How about not letting the system run out of memory? ;)
11:16<@caker>Free swap = 0kB
11:16<@caker>agentbleubleu: something is eating all your VM
11:16<@caker>agentbleubleu: it's not a kernel problem
11:16<scott>hungry hungry hippos
11:17<@caker>da da da da da daaaa!
11:17<agentbleubleu>Bdragon: would i do that by lowering the php memory limit? its now at 32Mg?
11:18<Bdragon>No, you need to figure out why you're eating through all your ram and swap and tune the system to not do that.
11:18<Bdragon>run top? ;)
11:18<agentbleubleu>top is constantly in my view
11:18<Bdragon>Sorting by memory %?
11:20<agentbleubleu>sorry for being an idiot but how to sort by memory
11:20<@caker>cap M
11:20<Bdragon>Press > a few times
11:22<agentbleubleu>mysql at top allways
11:22<irgeek>agentbleubleu: Do you have procinfo loaded? If not, grab the package and see what your swap in & swap out are.
11:22<irgeek>On a well behaved Linode, they shouldn't change often.
11:22<Bdragon>What's RES and %MEM of mysqld?
11:22<agentbleubleu> 1259 mysql 15 0 140m 18m 2420 S 7 3.3 6:32.78 mysqld
11:23<agentbleubleu> 1259 mysql 15 0 140m 17m 2420 S 0 3.3 6:34.15 mysqld
11:23<@caker>agentbleubleu: cat /proc/swaps, please?
11:24<agentbleubleu>Filename Type Size Used Priority
11:24<agentbleubleu>'/dev/xvdb partition 262136 55512 -1
11:25<@caker>ok .. 55M in swap
11:25<@caker>obviously, it would be easier to identify the offending process once your swap usage is close to full
11:26<agentbleubleu>maybe this might help, here it was when at 100% swap:
11:27<Bdragon>High load average
11:28<Bdragon>Offending process(es) memory wise isn't on the list though..
11:28<agentbleubleu>this was the oom at the time
11:28<Bdragon>Got any cron jobs that run at that time?
11:28<agentbleubleu>i looked no
11:28<agentbleubleu>1 hour beofre
11:28<agentbleubleu>or after
11:28<Bdragon>had it been running for an hour? ;)
11:28-!-Schroeder [] has joined #linode
11:29<agentbleubleu>like 24 hour
11:29<Bdragon>How about apache access log?
11:31<mwalling>agentbleubleu still OOMing?
11:32<Bdragon>If it spikes again try to run SHOW FULL PROCESSLIST in mysql as well...
11:33<agentbleubleu>i will run that now to see how it works
11:33<Bdragon>Oh, put a colon after it ;)
11:33<Bdragon>err, semicolon
11:33<agentbleubleu>access logs look weird,
11:33<agentbleubleu>yes ok
11:34<Bdragon>httpd looks weird immediately before the oom?
11:34<mwalling>crazy idea, might do more harm then good, but how about emailing an offsite email account the output of 'ps aux' every n minutes?
11:35<mwalling>then you could flip through them and see whats gobbling it up?
11:35<Bdragon>(How about every 1 minute if the load is over 5? ;)
11:35<mwalling>that would work too
11:36<mwalling>mikegrb: is there a dhcpd answering on
11:36<agentbleubleu>this is SHOW FULL PROCESSLIST; now
11:37<mikegrb>mwalling: not yet
11:37<Bdragon>Using persistent connections?
11:37<agentbleubleu>no i dont think so
11:37<Bdragon>Those are short sleeps
11:38<Bdragon>Run it a few more times
11:38<agentbleubleu>but i am not using mysql_close
11:39<Bdragon>USE mplaylist; SHOW KEYS FROM playlist;
11:40<agentbleubleu>mysql> USE mplaylist; SHOW KEYS FROM playlist;
11:40<agentbleubleu>ERROR 1049 (42000): Unknown database 'mplaylist'
11:40<agentbleubleu>ERROR 1046 (3D000): No database selected
11:40<agentbleubleu>mysql> USE mplaylist;
11:40<agentbleubleu>ERROR 1049 (42000): Unknown database 'mplaylist'
11:40<agentbleubleu>mysql> SHOW KEYS FROM playlist;
11:40<agentbleubleu>ERROR 1046 (3D000): No database selected
11:40<Bdragon>err, myplaylist.. Just wondering why a simple update was showing up in the processlist ;)
11:41<Bdragon>Might have just been a timing thing on your part ;)
11:41-!-glenk [] has joined #linode
11:42-!-standard [] has joined #linode
11:42<Bdragon>also, STATUS;
11:42<Bdragon>The last row..
11:43<agentbleubleu>Threads: 4 Questions: 145575 Slow queries: 141 Opens: 564 Flush tables: 1 Open tables: 64 Queries per second avg: 17.489
11:43<Bdragon>That's a lot of slow queries for only 145k questions
11:43<Bdragon>Are you using table indexes appropriately?
11:43-!-standard0 [~standard@] has joined #linode
11:44-!-standard0 [~standard@] has quit []
11:44<Bdragon>BTW, I meant "USE myplaylist; SHOW KEYS FROM playlist;" -- I typoed the db name when I asked before
11:44<agentbleubleu>im not 100% sure on anything. I am using a class called freetag which is a tagging system that is thridpartie
11:45-!-chesty [] has quit [Remote host closed the connection]
11:45<Bdragon>You should definately have at least an index on id, and probabaly a pk
11:46<agentbleubleu>but one of the scripts is really heavy, it takes about 2 minutes to run normally
11:46<Bdragon>What does it do?
11:46<mwalling>that sounds wasteful
11:46<Bdragon>If it takes two minutes, you most likely are missing an index or two
11:46<agentbleubleu>it does a lot, it tries to find a similar band to the last one played.
11:47<Bdragon>if we're talking about two minutes waiting on the db to crunch
11:47<agentbleubleu>its a long script
11:47<mwalling>agentbleubleu: means nothing
11:47<mwalling>its wasting resources... looking throught the queries it makes, you could prolly add an index and get much better results
11:48-!-standard [] has quit [Remote host closed the connection]
11:48-!-glen1 [] has joined #linode
11:48<Bdragon>You can get many thousands of times performance increase in most cases between a table missing useful indexes and having proper ones.
11:49-!-glenk [] has quit [Ping timeout: 480 seconds]
11:49<Bdragon>(i.e. dropping from a 100 second query to 0.2 seconds, etc)
11:50<agentbleubleu>ok i describe what it does then you might understand more:
11:50<Bdragon>Additionally, you might want to turn on slow query logging
11:50<agentbleubleu>is that in my.cnf
11:50<agentbleubleu>i think i did that yesterday
11:50<Bdragon>Would be interested to see the slow query log
11:51<agentbleubleu>ok sec
11:51<mikegrb>Would be interested to see the Bdragon
11:51<mikegrb>did I say that out loud?
11:51<Bdragon>I'm right here!
11:51-!-hfb [] has joined #linode
11:52<Bdragon>I think it's actually a command line argument..
11:52<mikegrb>anybody around with multiple linodes in dallas other then mwalling?
11:52<mwalling>mikegrb: or i'll talk to them if they want
11:52-!-glenk [] has joined #linode
11:53<Bdragon>THAT looks like a missing index.
11:53<mikegrb>mwalling: hmm?
11:53<Bdragon>DESCRIBE SELECT * FROM playlist WHERE approved = '1';
11:53-!-glenk [] has quit [Read error: Connection reset by peer]
11:53<Bdragon>after doing a USE myplaylist;
11:53-!-glenk [] has joined #linode
11:54<agentbleubleu>im not sure what you mean by a missing index
11:54<Bdragon>I mean you don't have appropriate indexes on the tables. It's an SQL thing.
11:54-!-glenk [] has quit [Read error: Connection reset by peer]
11:55<Bdragon>USE myplaylist; DESCRIBE SELECT * FROM playlist WHERE approved = '1';
11:55-!-glenk [] has joined #linode
11:55<Bdragon>(DESCRIBE will print the execution plan of the query)
11:56-!-glen1 [] has quit [Ping timeout: 480 seconds]
11:56<Bdragon>Yep, that's a table scan all right
11:57<Bdragon>ALTER TABLE playlist ADD INDEX approved (approved);
11:57<Bdragon>DESCRIBE SELECT * FROM playlist WHERE approved = '1';
11:58<agentbleubleu>its taking time
11:58<agentbleubleu>mysql> ALTER TABLE playlist ADD INDEX approved (approved);
11:58<agentbleubleu>Query OK, 12265 rows affected (56.97 sec)
11:58<agentbleubleu>Records: 12265 Duplicates: 0 Warnings: 0
11:59<Bdragon>Much better
12:00<mikegrb>now try SELECT * FROM playlist WHERE approved = '1';
12:00<Bdragon>don't do that
12:00<mikegrb>ignore the output but look at the query execution time at the end
12:00<mikegrb>Bdragon: :<
12:00<mikegrb>Bdragon: that's the best part!
12:00*mikegrb thwaps Bdragon
12:00<agentbleubleu>easy there
12:00<Bdragon>Well, if you have a relatively fast connection you can do that
12:00<agentbleubleu>i have
12:00<Bdragon>but it's gonna spam 5011 rows
12:01<agentbleubleu>pls dont fuck up me db
12:01<Bdragon>so be expecting that if you do run the actual select
12:01<Bdragon>I mean it's gonna be a really long resultset
12:01<Bdragon>I'm on satellite so I kinda tend to flinch when someone suggests running a query that returns a resultset like that :P
12:01<agentbleubleu>can i just ask what you just did already
12:02<mwalling>Bdragon: heh
12:02<mwalling>you'll get fapped!
12:02<Bdragon>I had you add an appropriate index for doing the "SELECT * FROM playlist WHERE approved = '1'" query
12:02<Bdragon>I was fapped yesterday.
12:02<Bdragon>Just came out of it ~1h ago
12:02<Bdragon>stupid steam updates
12:02<mwalling>get back from MA and forget?
12:03<Bdragon>There's still room for improvement on the table
12:03<Bdragon>Actually, much room.
12:03<Bdragon>DESCRIBE playlist;
12:03<Bdragon>I'm very interested in seeing how the id field is set up...
12:04<Bdragon>ok, that's keyed at least. Good.
12:04<agentbleubleu>the main 2 are the long blobs
12:04<agentbleubleu>they hold large arrays
12:05<Bdragon># Query_time: 16 Lock_time: 0 Rows_sent: 1 Rows_examined: 12186
12:05<Bdragon>SELECT * FROM playlist WHERE id LIKE '7061';
12:05<agentbleubleu>one is of picture urls and the other mp3 urls
12:05<Bdragon>I think this one is just a case of using LIKE instead of = accidentally and the query optimizer getting confused
12:05<Bdragon>DESCRIBE SELECT * FROM playlist WHERE id LIKE '7061';
12:05<Bdragon>DESCRIBE SELECT * FROM playlist WHERE id = '7061';
12:05*mwalling notes that Bdragon posesses great mysql-fu
12:06<mikegrb>mwalling: nah he had good google skills
12:06*mikegrb urns
12:06<Bdragon>I do a lot of optimization on mysql stuff
12:06<mwalling>mikegrb is an urn?
12:06*mikegrb nods
12:07<agentbleubleu>one of the arrays normally holds 500 urls.
12:07<Bdragon>yeah, the first one is a table scan because it wasn't able to use the primary key because you used LIKE, which IIRC doesn't work on numeric fields..
12:07<Bdragon>(I mean, the index doesn't work when doing a LIKE on numeric fields)
12:07<agentbleubleu>i did nt know that
12:08<Bdragon>And the second query should have PRIMARY for "key" on the second query
12:08<Bdragon>(DESCRIBE SELECT * FROM playlist WHERE id = '7061';)
12:09<Bdragon>If this is correct, it would be worthwhile to figure out where in the code you're using LIKE against an int field ;)
12:09<Bdragon>OK, now for fun:
12:10<Bdragon>Run the two queries and compare the execution time ;)
12:10<Bdragon>(i.e. run them without the DESCRIBE in front)
12:11<agentbleubleu>first one had a fit
12:11<agentbleubleu>1 row in set (16.13 sec)
12:12<Bdragon>If second one is over 0.2 seconds I will frankly be suprised.
12:12<agentbleubleu>seems stuck
12:12<agentbleubleu>i check top
12:13<agentbleubleu>1 row in set (1 min 21.50 sec)
12:13<agentbleubleu>load average: 8.98, 5.17, 2.80
12:13<Bdragon>You in the middle of spiking?
12:13<@caker>also, ps auxhfwww
12:15<agentbleubleu>yea spiking
12:15<agentbleubleu>not getting response at mo
12:15<@caker>is top sorting by memory still?
12:16<agentbleubleu>i just make sure i think sp
12:16<agentbleubleu>here we go
12:17<Bdragon>lock contention..
12:17<agentbleubleu>top is still by memory
12:17<Bdragon>Hmm, sorting things..
12:18<Bdragon>Looks like it's piling up behind a lock
12:18<@caker>I blame thrashing.
12:18<Bdragon>Yeah, probabaly
12:19<@caker>agentbleubleu: step 1. Figure out what's eating memory. Step 2. fix it
12:19<agentbleubleu>what is thrashing
12:19<Bdragon>The linode
12:19<@caker>agentbleubleu: swap thrashing
12:19<anderiv>step 3: profit! oh wait....
12:19<agentbleubleu>i changed swappiness to 20
12:19<Bdragon>I still blame keys
12:19<Bdragon>| 3809 | myplaylist | localhost | myplaylist | Query | 181 | Sorting result | select * from playlist where approved = '1' ORDER BY id DESC LIMIT 0, 5 |
12:19<@caker>agentbleubleu: watch top, sorted my memory usage, Swap used is > 200, capture the full output of top
12:20<@caker>*if swap used is
12:20<@caker>who what?
12:20<@caker>200 MB
12:21<agentbleubleu>i changed swappenis to 20% i think
12:21<agentbleubleu>sec i get my notes
12:21<Bdragon>Can you shutdown apache?
12:21<Bdragon>At least then it would quit piling more queries on..
12:21<@caker>agentbleubleu: swappiness is irrelevant in this scenario
12:21<agentbleubleu>i can do what ever you want
12:21<@caker>agentbleubleu: if top says that you're using over 200 MB of swap space, capture the full output
12:22<Bdragon>If you can, stop apache temporarily
12:22<@caker>agentbleubleu: and pastebin it.
12:22<@caker>too many cooks
12:22<Bdragon>I think your users are hitting refresh because the site is unresponsive, thereby contributing to the meltdown..
12:22<@caker>All we need to do is figure out who's going overboard and limit it. It's easy
12:23<agentbleubleu>caker please describe how to capture the full output
12:23<Bdragon>(I rather think ironing out the indexes will solve most of the problem)
12:23<@caker>agentbleubleu: copy paste?
12:23<@caker>Bdragon: if mysql doens't have limits on it, there's still the potential to blow up
12:24<@caker>Bdragon: indexes reduce the amount of disk scanning required to complete a query
12:24<agentbleubleu>this is top by memory
12:24<Bdragon>Yeah, but at 17 qps on the server, anything that reduces full table scans gives a huge boost
12:24<@caker>Bdragon: yes, they can reduce memory usage (and increase it), but if there are no limits to mysql the problem will still exist
12:24<agentbleubleu>is this what you meant
12:24<Bdragon>It's most likely apache waiting on mysqld...
12:25<@caker>agentbleubleu: I want that when the machine is spiraling down
12:25<@caker>agentbleubleu: or better yet,
12:25-!-lakin_ [] has joined #linode
12:25<@caker>agentbleubleu: or better yet, "ps auxhfwwww" when the machine is spiraling down
12:25<Bdragon>pid 7763 looks rather interesting.. That's quite a difference in memory usage..
12:25<agentbleubleu>i have it when it went oom
12:26<agentbleubleu>but not organised by memory
12:26<@caker>then it's useless
12:26<@caker>"ps auxhfwwww" <-- when machine is thrashing is all we need
12:27<agentbleubleu>Bdragon: pid 7763 looks rather interesting.. That's quite a difference in memory ?
12:27<Bdragon>Could you try "SELECT * FROM playlist WHERE id = '7061';" again now that it's not thrashing...
12:27<Bdragon>I mean, it's using a lot more ram than the others
12:27<Bdragon>It's probabaly serving a page that is being real mean
12:27<agentbleubleu>1 row in set (2.37 sec)
12:27<Bdragon>A bit better
12:28<Bdragon>If the db were healthy it should be nearly instantaneous
12:28<agentbleubleu>so what have i fucked up using like instead of =
12:28<agentbleubleu>and not enough indexes (which i dont understand)
12:28-!-Schroeder [] has quit [Ping timeout: 480 seconds]
12:28<Bdragon>Well, that's a big part of it
12:29<Bdragon>Let's fix the indexes and then find that LIKE...
12:29<agentbleubleu>the like i can find
12:29<agentbleubleu>i know it all like the back of my hand
12:29<Bdragon> is very useful regarding seeing what's not using indexes properly and why stuff is fighting, btw
12:30<Bdragon>Found the LIKE already?
12:31<agentbleubleu>these queries without anythink in them look bloody odd
12:31<agentbleubleu>give me 2 minutes i do that now
12:31<agentbleubleu>SELECT * FROM playlist WHERE id LIKE ''
12:31<agentbleubleu>this shouldnt occur as far as I have designed t
12:31<Bdragon>Doesn't matter really, an = will let it at least use the index (and reduce the load on the db drastically)
12:31<agentbleubleu>i do the likes now
12:31<agentbleubleu>pls give me a few minutes
12:32<mwalling>Bdragon: yeah, lay off :P
12:32<Bdragon>I'm gonna make some orange juice, I seem to be coming down with something
12:32<mikegrb>it workde!
12:32-!-lakin [] has quit [Ping timeout: 480 seconds]
12:37<agentbleubleu>found 1
12:37<agentbleubleu>looking for more
12:39<agentbleubleu>can onnly find one
12:39<Bdragon>I was really only expecting there to be one, so that's good
12:40<agentbleubleu>what a little bugger
12:40<agentbleubleu>u a genus
12:41<Bdragon>Was it happening on every page or something?
12:41<Bdragon>ok, there's two more indexes that would help as well.
12:41<agentbleubleu>a common page
12:41<agentbleubleu>not every page
12:41<agentbleubleu>but a comon one
12:41<Bdragon>ALTER TABLE playlist ADD INDEX user (user);
12:42<Bdragon>Well, that common page should be much faster now ;)
12:42-!-Schroeder [] has joined #linode
12:43<agentbleubleu>when adding indexes to a table what does it do
12:43<Bdragon>It makes it start maintaining a lookup table to make finding stuff faster
12:43<agentbleubleu>mysql> ALTER TABLE playlist ADD INDEX user (user);
12:43<agentbleubleu>Query OK, 12279 rows affected (1 min 0.35 sec)
12:43<agentbleubleu>Records: 12279 Duplicates: 0 Warnings: 0
12:44<Bdragon>So it doesn't actually have to scan through the data
12:44-!-getsmart [] has quit [Quit: Ex-Chat]
12:44<agentbleubleu>v interesting
12:45<Bdragon>Another one that could use an index is "select * from playlist where approved = '1' ORDER BY id DESC LIMIT 0, 5"
12:45<Bdragon>This looks like some sort of pager?
12:45<agentbleubleu>see u can tell im self taught and cobbleing it all together into an ever increasing mess lol
12:45<Bdragon>Indexes can also be used to avoid having to sort stuff manually
12:46<agentbleubleu>sec i find out what that one is doing
12:46<Bdragon>(i.e. it can just read down the index line because it's already in the needed order, or if it's opposite, it can read UP the index line)
12:47<agentbleubleu>found it
12:47<agentbleubleu>its a slow page
12:48<agentbleubleu>and a really comon one
12:48<Bdragon>Yeah, I imagine
12:48<Bdragon>Try this:
12:48<Bdragon>ALTER TABLE playlist ADD INDEX pager_idx (approved, id);
12:48<Bdragon>(Might take a minute to build the index)
12:49<agentbleubleu>this is the main page really
12:49<agentbleubleu>and it is the one that seems to make it go iffy
12:50<agentbleubleu>mysql> ALTER TABLE playlist ADD INDEX pager_idx (approved, id);
12:50<agentbleubleu>Query OK, 12281 rows affected (48.25 sec)
12:50<agentbleubleu>Records: 12281 Duplicates: 0 Warnings: 0
12:50<agentbleubleu>though shouldt as its not that a tough one
12:50<Bdragon>OK, now try the main page again
12:51-!-jagga [] has joined #linode
12:51<jagga>hi 2 all
12:51<agentbleubleu>this is the page still slow
12:51<Bdragon>Can you do a SHOW FULL PROCESSLIST; while it's loading?
12:52<agentbleubleu>yes i try
12:52<agentbleubleu>13 rows in set (0.19 sec)
12:53<agentbleubleu>any good or again?
12:53<Bdragon>OK, another sort
12:54<Bdragon>id 1313 in that last paste
12:55<Bdragon>Also, that join should be investigated to make sure it's using a key
12:55-!-irgeek [] has quit [Quit: irgeek]
12:55<agentbleubleu>this is part of a script that is third partie
12:55<agentbleubleu>its a class called freetag
12:55<Bdragon>DESCRIBE SELECT DISTINCT object_id FROM freetagged_objects INNER JOIN freetags ON (tag_id = id) WHERE raw_tag = 'Classical' ORDER BY object_id ASC LIMIT 0, 100;
12:58<Bdragon>And running the query takes how long?
12:58<agentbleubleu>2 rows in set (0.01 sec)
12:58<Bdragon>I mean without the DESCRIBE
12:58<Bdragon>DESCRIBE doesn't actually run the query, it only figures out what it would do if it WERE running the query
12:59<agentbleubleu>15 rows in set (0.15 sec)
12:59<agentbleubleu>im learning a lot today
12:59<agentbleubleu>I have been banging my head on a brick wall for about a week
13:00<agentbleubleu>it feels like a good day
13:00<Bdragon>Is object_id from freetagged_objects?
13:00<agentbleubleu>free tags has one too
13:01<agentbleubleu>shall i check to be sure
13:01<Bdragon>I know it wouldn't have the same name in both tables, the query would error if that were the case
13:02<agentbleubleu>i log into db now
13:02<@linbot>New news from forums: My First Mail Server, I need help in Email/SMTP Related Forum <>
13:02<Bdragon>ALTER TABLE freetagged_objects ADD INDEX test_tag_idx (object_id);
13:03<Bdragon>DESCRIBE SELECT DISTINCT object_id FROM freetagged_objects INNER JOIN freetags ON (tag_id = id) WHERE raw_tag = 'Classical' ORDER BY object_id ASC LIMIT 0, 100;
13:03<agentbleubleu>yes your right it does not
13:03-!-tuux1598g [] has joined #linode
13:03<Bdragon>I'd like to see how well that test index works..
13:03<agentbleubleu>sec pls
13:04<agentbleubleu>mysql> ALTER TABLE freetagged_objects ADD INDEX test_tag_idx (object_id);
13:04<agentbleubleu>Query OK, 6359 rows affected (0.19 sec)
13:04<agentbleubleu>Records: 6359 Duplicates: 0 Warnings: 0
13:05<Bdragon>Heh, the index creation is going faster now, I think the load is already going down
13:05<Bdragon>oh, missed the where
13:05<Bdragon>raw_tag is in freetags?
13:06<Bdragon>and is tag_id the one in freetagged_objects?
13:07<agentbleubleu>in freetags id, tag, raw tag
13:07<Bdragon>ALTER TABLE freetagged_objects DROP INDEX test_tag_idx;
13:08<Bdragon>ALTER TABLE freetagged_objects ADD INDEX test_tag_idx (tag_id, object_id);
13:08<agentbleubleu>in freetagged_objects tag_id, tagger_id object_id, tagged_on,
13:08<Bdragon>DESCRIBE SELECT DISTINCT object_id FROM freetagged_objects INNER JOIN freetags ON (tag_id = id) WHERE raw_tag = 'Classical' ORDER BY object_id ASC LIMIT 0, 100;
13:08<agentbleubleu>all 3?
13:08<agentbleubleu>im touching wood
13:09<agentbleubleu>mysql> ALTER TABLE freetagged_objects DROP INDEX test_tag_idx;
13:09<agentbleubleu>Query OK, 6362 rows affected (0.27 sec)
13:09<agentbleubleu>Records: 6362 Duplicates: 0 Warnings: 0
13:10<agentbleubleu>think i fucked something
13:10<agentbleubleu>mysql> ALTER TABLE freetagged_objects ADD INDEX test_tag_idx (tag_id, object_id);
13:10<agentbleubleu>ERROR 1046 (3D000): No database selected
13:10-!-atourino [~Antonio@] has left #linode [Leaving.]
13:10<Bdragon>use myplaylist;
13:11<Bdragon>No database selected means you werent USEing one at the time you ran the query
13:11<Bdragon>Try USE myplaylist; and try again
13:12<agentbleubleu>sec got you
13:12<agentbleubleu>mysql> ALTER TABLE freetagged_objects ADD INDEX test_tag_idx (tag_id, object_id);
13:12<agentbleubleu>Query OK, 6363 rows affected (0.25 sec)
13:12<agentbleubleu>Records: 6363 Duplicates: 0 Warnings: 0
13:14<Bdragon>Err, how many freetags do you have?
13:14<agentbleubleu>in total
13:14<agentbleubleu>i think 10k
13:14<agentbleubleu>not sure
13:14<agentbleubleu>maybe 5
13:15<Bdragon>Wonder why it's still choosing that query plan...
13:15<agentbleubleu>hey i fucked it up half way through that 3 step process
13:15<Bdragon>probabaly the DISTINCT
13:15<agentbleubleu>i had to log in again
13:15<Bdragon>after you log in you have to remember to USE again
13:15<agentbleubleu>should i do it again
13:16<Schroeder>so long, Ben Utecht
13:16<Schroeder>the whitest tight end ever
13:17<Bdragon>OK, just about out of things to work on...
13:17<Bdragon>Regarding "UPDATE playlist SET views = '2049' WHERE id = '2746'"
13:17<agentbleubleu>i know where that is
13:17<Bdragon>Are you doing something like locking the table, getting the current views count, adding one to it, saving it back, and unlocking?
13:17<agentbleubleu>something like that
13:17<agentbleubleu>i check
13:18<agentbleubleu>sounds about right
13:18<agentbleubleu>$insert = "UPDATE playlist SET views = '$Viewers' WHERE id = '$_GET[ref]' ";
13:19<mikegrb>are you validing the ref form field befure inserting it blindly into a query?
13:19<Bdragon>mumble sql injection
13:19<agentbleubleu>dont know about the locking part
13:19<agentbleubleu>not using locking
13:19<mikegrb>Bdragon: <3
13:20<Bdragon>You can do UPDATE playlist SET views = views + 1 WHERE ..., ya know ;)
13:20<mwalling>caker/mikegrb/tasaro: thanks for moving that :)
13:20<Bdragon>Assuming it's a counter
13:20<@caker>mwalling: nod
13:20<mwalling>damn thread hijackers
13:20<mikegrb>mwalling: what id I move?
13:20<Bdragon>And you'd BETTER be sanitizing $_GET.
13:20<mwalling>someone moved
13:21<agentbleubleu>i got yo
13:21<mikegrb>a ghost, probably
13:21<m0unds>o noes
13:21<agentbleubleu>ok give me a sec to change this
13:22<Bdragon>I'd fix the security hole first
13:22*mwalling dons his ghost busters outfit
13:22<mikegrb>speaking of ghost busters, that reminds me of a movie I wanted to see I heard about on npr
13:22<@linbot>New news from forums: password authentication error when checking mail in Email/SMTP Related Forum <>
13:22<Bdragon>At the very least do something like $id = (int)$_GET[ref];
13:22<Bdragon>So it will cast to an integer
13:23<agentbleubleu>$insert = "UPDATE playlist SET views = '$Viewers' WHERE id = '(int)$_GET[ref]' ";
13:23<Bdragon>Do it on a line before
13:23<Bdragon>and then use $id
13:24<Bdragon>(frankly, it's STILL scary that way...)
13:24<agentbleubleu>but it is looking for a where
13:24<Bdragon>Don't ever ever ever trust anything you find sitting around in $_GET
13:24<agentbleubleu>not inserting into a field
13:24<Bdragon>What if someone is looking for '; DROP DATABASE... (etc)
13:24<@caker>agentbleubleu: you do know what sql injection is, right?
13:25<agentbleubleu>i take the slaps
13:25<mwalling>agentbleubleu: no, you said this is a class you downloaded?
13:25<Bdragon>(no the tagging was)
13:25<agentbleubleu>na this part is me
13:25<mwalling>oh ok
13:25<mwalling>yeah, take the slap
13:26*mikegrb gets in on the slapping
13:26<jagga>is anyone from russia?)
13:26<mikegrb>I think a lot of people are, don't think many in here are though
13:27<agentbleubleu>hehe mikegrb gets in on the slapping
13:27-!-pfein is now known as pfein-away
13:27<Bdragon>Now that your performance doesn't suck for the most part, why not spend some time auditing? ;)
13:28<mwalling>auditing: looking through your code to make sure people cant make it go boom
13:28<@caker>or just let me loose on your website
13:28*caker hacks the planet
13:28<Bdragon>Also, consider using PDO and prepared statements everywhere you can
13:28*mikegrb watches caker rub his hands together evily
13:29<mwalling>/etc/rc.d/rc.httpd stop
13:29<mwalling>caker: have at me
13:29<mikegrb>ewww slackware
13:29<mwalling>slackware > *
13:29<zeroday>* > slackware > mwalling
13:29<agentbleubleu>$insert = "UPDATE playlist SET views = views + 1 WHERE id = '$id3' ";
13:30<@caker>I like cheese
13:30<@linbot>Cheese is good... Cheese is wise.
13:31<@caker>I like food. Food tastes GOOD
13:31<zeroday>I just had food ^_^
13:31*mikegrb searches for id3=: x'; DROP myplaylist; SELECT * FROM playlists WHERE username = 'lolz
13:31<zeroday>lolz link?
13:31<zeroday>agentbleubleu, if this is php, mysql_real_escape_string
13:32<zeroday>run the sql variables through that
13:32<agentbleubleu>ok sorry what is mysql_real_escape_string
13:32<mwalling>agentbleubleu: look it up
13:32<agentbleubleu>everything working after the small adjustents
13:33<zeroday>is there a link agentbleubleu ?
13:33<mikegrb>agentbleubleu: you understand why what I said would be bad to submit as the search string right?
13:33<zeroday>"This function must always (with few exceptions) be used to make data safe before sending a query to MySQL."
13:33<mikegrb>agentbleubleu: mysql_real_escape_strings make it mo' safe
13:33<mwalling>add that as a quick search in firefox
13:33<zeroday>aye, thats what I do aswell
13:33<zeroday>makes checking functions much easier
13:33<agentbleubleu>2 minuts to absorbe all pls
13:35<zeroday>Good site for learning php
13:35-!-pfein-away is now known as pfein
13:35<Bdragon>(The prepared statement examples)
13:35-!-pfein is now known as pfein-away
13:35<Bdragon>If you want to go whole hog and switch to pdo for querying ;)
13:36-!-lakin_ [] has quit [Quit: Ex-Chat]
13:36-!-lakin_ [] has joined #linode
13:36<Bdragon>Example #6 is especially compelling ;)
13:37<agentbleubleu>talking of this
13:38<agentbleubleu>i was looking into the performance of pear DB adodb and one other
13:38<agentbleubleu>oh and pdo
13:38<agentbleubleu>and it seemed the performance was worst on peardb
13:38<Bdragon>Well, PDO is "more native"
13:38<agentbleubleu>i get the post
13:39<zeroday>lol Bebo + AOL
13:40<Bdragon>But yeah, for security you should be using prepared statements or something that works similar to prepared statements (Drupal's database layer for example doesn't do prepared statements but it does have "placeholders" which work somewhat similar)
13:41<Bdragon>For speed, you gain MUCH more by having good indexes than you do by switching to another database layer ;)
13:41<agentbleubleu>ok a switch to pdo or other would seem to be a good next move but in the mean time i suspect I should use mysql_real_escape_strings?
13:42<Bdragon>If you need to pass a string into a query, yeah
13:42<Bdragon>(one that is coming from somewhere else, that is)
13:42<zeroday>never trust user input
13:42<agentbleubleu>yea like dealing with the general publick
13:43<Bdragon>Or coming from another function
13:43<Bdragon>I mean, where is the other function getting it from? ;)
13:44<agentbleubleu>the db
13:45<Bdragon>What if someone snuck sql code into a string field in the db?
13:45<agentbleubleu>ok im going to have a good look into this mysql_real_escape_strings right now
13:46<Bdragon>Security is hard ;)
13:46<agentbleubleu>then clean up any possible injections targets
13:46-!-zeph [] has quit [Quit: Sto andando via]
13:46<Bdragon>Make it easier by applying good practices everywhere
13:46<agentbleubleu>thanks guys for all the help today
13:46<agentbleubleu>u mean by using pdo
13:47<agentbleubleu>I can it will just take a few days to get my head around it but its no problem
13:47<Bdragon>Optimally, yes. Something with prepared statements.
13:47<agentbleubleu>ok then I will go that route
13:47<agentbleubleu>will that add any perfermonance
13:48<Bdragon>It can. Especially if you run a similar query over and over
13:48<agentbleubleu>i do
13:48<Bdragon>(you can just twiddle the data and execute the query again and the database won't have to start over from scratch with the new query)
13:49<Bdragon>Again, see example #6 on
13:49<Bdragon>and 8 as well
13:50<agentbleubleu>ok im sold
13:50<Bdragon>In any case, I have to get back to work now ;)
13:50<agentbleubleu>i will trasnfer all over to this
13:50<agentbleubleu>what do i owe you
13:51<agentbleubleu>do you have paypal
13:51<agentbleubleu>i would like to buy you a bottle of plonk
13:51<agentbleubleu>on its way
13:51<Bdragon>Thanks, was fun, I like teaching ;)
13:52<agentbleubleu>what currency are you in
13:57<agentbleubleu>ok you should have enough to get you all pissed
13:58<agentbleubleu>Bdragon: thanks Bdragon:. and all, again
13:59<agentbleubleu>i don't know what I would do without you.
14:09-!-tuux1598g [] has quit [Remote host closed the connection]
14:09<zeroday>dont laptop manufacturers make scroll wheel based volume controls anymore?
14:10<mwalling>no, you have to click a fscking button a gigillion times
14:10<zeroday>I need a new laptop
14:10<zeroday>but the only laptops I see have button based ones
14:11<zeroday>Scroll ones just make life easier
14:11-!-minerale [] has joined #linode
14:11<minerale>Is IO in the Xen limited in any way?
14:12<minerale>Before the beta I was getting sustained 6 Mb/s (up to 8) when downloading from the server, now under Xen, transfer is capped at about 3
14:16-!-Dreamer3 [] has quit [Quit: This computer has gone to sleep]
14:16-!-pfein-away is now known as pfein
14:19<agentbleubleu>caker: the load average: 17.70, 7.15, 3.23 is gone and its frozen again I cannot do ps auxhfwwww as it is not responding, any suggestions?
14:20<agentbleubleu>yea ok
14:21-!-argoe [] has joined #linode
14:23-!-pfein is now known as pfein-away
14:23-!-pfein-away [] has quit [Remote host closed the connection]
14:24<Bdragon>(I rather wonder if a search bot is trying to spider the site....)
14:25<agentbleubleu>yes its possible but i checked the stats for that the last time and could not see any
14:25<agentbleubleu>at that right time
14:25<agentbleubleu>but google are on me like a rash
14:25<agentbleubleu>as the site moves fast
14:25<zeroday>change your site options at google webmasters section
14:26<agentbleubleu>whats o they dont crawl so often
14:26*mwalling resuggests emailing an offsite account with your ps auaadsfuiswearcakersatonhiskeyboardtocomeupwiththis every n minutes
14:28<agentbleubleu>just after a reboot
14:28<agentbleubleu>i could not do it beofre
14:29<mwalling>after a reboot.....?
14:29<mwalling>how would that show whats happening before the reboot?
14:29<agentbleubleu>yes i will try and catch it when it happens agian before it freezes
14:30<agentbleubleu>ok as soon as it happens i will try and get it
14:30<agentbleubleu>yes google were crawling
14:31<agentbleubleu>just before
14:32-!-Schroeder [] has quit [Ping timeout: 480 seconds]
14:35-!-Anon0886 [] has joined #linode
14:38-!-Picasso- [liquid@] has joined #linode
14:38<Picasso->anyone know of a linode like service in the EU?
14:38<Picasso->i need a euro host
14:40-!-andrew_j_w [] has joined #linode
14:40-!-Anon0886 [] has quit [Quit: Anon0886]
14:42-!-Schroeder [] has joined #linode
14:48<anderiv>Picasso-: sorry...I don't know of one.
14:49<Picasso->amazon im thinking will do this soon, since it has euro s3 now
14:51-!-ankur [3bb48463@] has quit [Quit: ajax IRC Client]
14:51<mwalling>do you *need* a euro host?
14:51<mwalling>there are several .au users here
14:54<anderiv>Picasso-: you probably know this, but Amazon's e2 and linode are quite different services, aimed at different customers.
14:56<minerale>correct, ec2 does not provide resident storage, ie, whatever you put on that server will die during the next restart, you have to rely on it's s3 storage
14:56-!-argoe [] has quit [Quit: argoe]
14:57-!-Majes [] has quit [Remote host closed the connection]
14:59<Picasso->yes I know this but for my use to me its the same
14:59<Picasso->Im just after bandwidth
14:59<Picasso->i do 4tb a month on ec2
14:59-!-agentbleubleu [] has quit [Read error: Connection reset by peer]
15:00<anderiv>heh - well then I'm not sure linode is for you :-)
15:00-!-agentbleubleu [] has joined #linode
15:00<Picasso->we will see
15:00<Bdragon>(That's what CDNS are for, natch)
15:00<Bdragon>CDNs rather
15:00<Picasso->all my work is proxys
15:00<Picasso->mass web collection
15:01<Picasso->I bring in not send out
15:01<Picasso->need euro whore for some airline sites
15:01<Picasso->geo ip bs
15:02<Picasso->and maybe i'll watch the bbc too
15:03-!-Majes [] has joined #linode
15:04-!-Majes [] has left #linode []
15:06<mwalling>sshesh... you guys break something in the DB for the forum? posting seems lathargic
15:06<@caker>mwalling: it sometimes hangs trying to send out the email notifications...
15:07<@caker>give it a moment
15:07*mikegrb breaks mwalling's kneecaps
15:07*mwalling breaks mikegrb
15:10<Picasso->linode site is missing a "about" page?
15:10<Picasso->who the hell are these guys?
15:11<purrdeta>they are teh awesome
15:11<Picasso->how does the colo work? 3 random dudes in random citys just keep installing boxen?
15:11<purrdeta>I have actually never thought about who they were... lol
15:11<mwalling>theyre caker tasaro and the troll named mikegrb
15:11<Picasso->so 3 trolls
15:11<Picasso->3 citys
15:12<Picasso->seems about right so far
15:12<mwalling>no, 3 guys, one city
15:12<@tasaro>3 guys, 4 cities
15:12<Picasso->no hands on
15:12<mikegrb>well technically we all live in different cities
15:12-!-Picasso- [liquid@] has quit [Quit: Picasso-]
15:12-!-Picasso- [liquid@] has joined #linode
15:12<mikegrb>and as tasaro said the office is in a fourth
15:12<Picasso->ack dumb java client
15:13<Picasso->office pfft
15:13<Picasso->well office COOL if work would pay 1/2 my rent
15:17-!-agentbleubleu [] has quit [Quit: agentbleubleu]
15:19-!-agentbleubleu [] has joined #linode
15:19<agentbleubleu>Swap: 262136k total, 0k used, 262136k free, 279072k cached
15:20<agentbleubleu>dirst time this has been unused as far as i can tell
15:20<mikegrb>that's a good sign
15:20<mikegrb>how long has it been since boot?
15:20<agentbleubleu>normally though its used stragight away
15:20<mikegrb>you should browse around the site
15:20<mikegrb>making sure to hit the hardest pages
15:21<mikegrb>and see how things look after
15:21<agentbleubleu>its got a ton of traffic
15:21<@caker>and receive much spam
15:21-!-glenk [] has quit [Ping timeout: 480 seconds]
15:22<agentbleubleu>just running the really intense script
15:22<agentbleubleu>no change
15:22<mwalling>does it feel faster?
15:22<agentbleubleu>just about to say that
15:24<agentbleubleu>yea all looking good
15:25<agentbleubleu>dare say there will be something else tomorrow mind, you know i like to keep you all on your toes.
15:25-!-clanehin [] has joined #linode
15:25<agentbleubleu>ok im off catch you tomorrow.
15:25-!-agentbleubleu [] has quit [Quit: agentbleubleu]
15:30<syntaxman>Are there any newer gentoo disk images in the works at all?
15:32<syntaxman>2007.0 has been a real pain to bring up to date. Trying to think of ways to get around that.
15:32<syntaxman>I want to play and experiment and goof off with gentoo.
15:37*iggy suggests doing that on something other than a linode
15:40*mwalling agrees
15:40<syntaxman>I don't have the extra hardware to do it on right now, unfortunately
15:40<@caker>syntaxman: what's the problem?
15:41<mwalling>syntaxman: qemu?
15:42<syntaxman>caker: I was just curious if a newer gentoo image was in the cards. There are some dependency issues that complicate upgrades from 2007.0
15:42<mwalling>mmm automated dependancy tracking :)
15:43<syntaxman>over-active dependency tracking... and bad dependency data.
15:43<@caker>probably not anytime soon unless linode gentooers make more noise
15:43<@caker>or if they release a new version
15:43*anderiv won't be making any noise :-)
15:44-!-george [] has joined #linode
15:44<syntaxman>caker: No worries.
15:44<syntaxman>Hey... using a virtual machine is a *great* idea!!
15:45<syntaxman>And... I already have a linode!! ;-)
15:45<iggy>I more meant using it on your own machine
15:46<iggy>since gentoo is not nice to the shared resources on the hosts
15:46<syntaxman>iggy: I know, but I don't see a tremendous amount of difference for my purposes.
15:46<iggy>it's not your purposes I'm worried about ;)
15:51-!-busycc [] has quit [Remote host closed the connection]
15:52-!-webPragmatist [] has joined #linode
15:53-!-george [] has quit [Remote host closed the connection]
16:23-!-hpj [] has quit [Ping timeout: 480 seconds]
16:34-!-mwalling_ [] has joined #linode
16:34-!-mwalling_ [] has quit []
17:04-!-Schroeder [] has quit [Ping timeout: 480 seconds]
17:16-!-webPragmatis1 [] has joined #linode
17:17-!-pdx6__ [~ballew@] has joined #linode
17:20-!-SpaceHob1 [] has joined #linode
17:20-!-Toba__ [] has joined #linode
17:20-!-minerale_ [] has joined #linode
17:20-!-cruxeter1us [] has joined #linode
17:20-!-Netsplit <-> quits: pdx6_, Bdragon, Picasso-, hfb, cruxeternus, Toba_, webPragmatist, minerale, LoneWlf
17:21-!-Netsplit over, joins: Bdragon
17:26-!-linville [] has quit [Quit: Leaving]
17:31-!-hfb [] has joined #linode
18:16-!-jagga [] has quit []
18:25-!-andrew_j_w [] has quit [Remote host closed the connection]
18:28-!-lakin_ [] has quit [Remote host closed the connection]
18:29-!-D[a]rkbeholder [] has joined #linode
18:30-!-Intern[a]t [] has joined #linode
18:31-!-hpj [] has joined #linode
18:33-!-Netsplit <->, quits: darkbeholder, Internat
18:34-!-glenk [] has joined #linode
18:37-!-cmarcelo [~cmarcelo@] has quit [Quit: Leaving]
18:41-!-jkwood [] has joined #linode
18:43<jkwood>I've been informed that I should be hooked up to the party line.
18:43<booja>good morning all
18:44<mwalling>mikegrb: jkwood wants to partae
18:47<zeroday>what does strictmodes do in sshd?
18:48<zeroday>was searching the wrong term on google
18:51<booja>zeroday: gives you the cane
19:11-!-LoneWlf [] has joined #linode
19:12-!-jacob [~jacobmp@] has joined #linode
19:19-!-hfb [] has quit [Quit: Leaving]
19:22<@caker>jkwood: you sure?
19:23-!-m0unds [] has quit [Quit: shutting down..stupid heat]
19:24<jkwood>I'm never sure about anything.
19:26<jkwood>Does entail a secret initiation ritual or something?
19:26-!-TheFirst [] has joined #linode
19:26<jkwood>*Does it
19:27<@caker>are you referring to the private lan for linodes or something else?
19:28-!-Aero187 [] has joined #linode
19:28<jkwood>That's the one.
19:28<Talman>You hve got to be kidding me. "Lets filter spam at the data center!"
19:28<@caker>jkwood: done. reboot to activate it. Your private IP will be listed on the remote access tab
19:29<jkwood>Okay. Thanks. :)
19:30-!-maynard0 [] has joined #linode
19:30-!-random_ [~vili@] has joined #linode
19:30<bd_>private lan? what's this now?
19:31<Talman>Probably inter-Linode LAN.
19:31<@caker>yeah... eth1 device that joins you onto a private, backend network with non-routable IPs, not counted in bandwidth accounting
19:31<Talman>So that it doesn't hit your bandwidth, since it doesn't go beyond the gateway.
19:31<random_>hello ... can i please ask u people some questions?
19:32-!-chesty [] has joined #linode
19:32<bd_>within one DC, I expect?
19:32<@caker>bd_: yeah
19:32<@caker>random_: sure -- go for it
19:33<random_>so: how u decode an user ip address from an pjirc server? i googled that and found out about some script called webuser
19:34<random_>but i cant find it... and when i try to use the from cgi:irc it doesnt return an ip address ... just some strange numbers
19:34<maynard0>Another silly question: Anyone running Debian 4 in their linode? I'm getting weird exim errors like so "root@daduh:/etc# /usr/lib/sendmail -bv
19:35<@caker>random_: it's hex encoded, I believe
19:35<maynard0>Or are both random and I seeing ipv6 weirdness?
19:35<random_>the address encoded looks like this 62CC5AF1.53441C17.113F0B3B.IP
19:36<booja>tahat looks hexy to me
19:36<random_>yeah but ... returns crap when i input it
19:36<@caker> is for decoding cgi:irc IPs, not pjirc
19:37<random_>i was thinking is the same encoding
19:37<random_>then what to use for pjirc
19:38<@caker>!unhexlify 62CC5AF1.53441C17.113F0B3B.IP
19:38<@caker>!unhexlify 62CC5AF1
19:38<@linbot>caker: bÌZñ
19:38<jkwood>Well, it was worth a try.
19:39<maynard0>Perhaps my problem is due to local DNS configuration.
19:39<random_>i found on about some script for irssi called webuser
19:44<random_>any ideas?
19:44<jkwood>I'm sure that the encoding scheme must be somewhere in the PJIRC source code. Unfortunately, that's a huge mess of files.
19:45<random_>i see...
19:46<random_>nice idea ... pjirc source is open?
19:46-!-m0unds_ [] has joined #linode
19:46<jkwood>Yep. On Sourceforge.
19:48-!-m0unds_ is now known as m0unds
19:49<random_>huge mess of files indeed
19:50<jkwood>You might be able to use grep to help you find what you're looking for.
19:50<random_>any ideas on what to look for....
19:51<jkwood>Depends on whether they properly commented their code.
19:51<random_>i'm on osx ... i have spotlight
19:51<jkwood>Ah, there ya go. Hmm... ip and address are the two things to come to mind.
19:53-!-Ender [] has joined #linode
19:53-!-Talman [] has quit [Read error: Connection reset by peer]
19:54<@caker>how about "IP"
19:54<random_>on 3 files
19:55<random_> and
19:56<jkwood>Well, have a look. I figure is the most likely.
19:56<random_>me too
19:56-!-Ender is now known as Talman
20:04<maynard0>beats me what the problem was. but debian ships exim3 by default, i upgraded to exim4 and answered some obvious questions during the config script, and boom. problem solved. If this chat is logged, perhaps this will be of use to someone doing a search. shrug
20:07<random_>i'm stupid ..:)
20:08<booja>logging engines .... engaged!
20:08<random_>it's noot pjirc the server runs unreal 3.2 rc1
20:09<random_>and says : NICKIP = This token indicates that a (standard) base64 encoded IP address is included in the NICK command.
20:09<jkwood>ah. That could do it.
20:10<random_>The IP is in binary network byte order formated and
20:10<random_> encoded using the standard base64 algorithm. '*' is used if no IP is available.
20:14-!-maynard0 [] has quit [Quit: maynard0]
20:24<random_>no way to decode it i guess....
20:24<encode>hoe willy
20:24<random_>it's called cloaking ... uses md5
20:32<random_>how what?
20:33<encode>bah, i clearly had some typing issues earlier
20:33<encode>i meant to say, how silly
20:34-!-ondrej [] has quit [Quit: Leaving]
20:34<random_>it happens to the best of us.... so np
20:36-!-metaperl_ [] has joined #linode
20:42-!-metaperl [] has quit [Ping timeout: 480 seconds]
20:42-!-metaperl_ is now known as metaperl
20:52-!-jkwood [] has quit [Quit: brb]
20:56-!-jkwood [] has joined #linode
21:00-!-hfb [~hfb@] has joined #linode
21:01-!-random_ [~vili@] has left #linode []
21:06<@linbot>caker: Linode360 - 41, Linode540 - 1, Linode720 - 0, Linode1080 - 0, Linode1440 - 0
21:06<tpope>you're getting behind
21:06<jkwood>Must... upgrade...
21:08<iggy>I'm going to setup a script to get avail from linbot periodically and chart it
21:09<jkwood>Bah... I appear to be DOSing myself.
21:11<@caker>I wrote a phpbb to wordpress importer: (don't post, I'm going to wipe it again)
21:12<tpope>you're moving the forums to wordpress?
21:12<@caker>no, just the annoucements forum, I think
21:12<tpope>I met the creator of wordpress this week
21:12<tpope>didn't know it at the time
21:12<booja>blogging the lazy mans way
21:13-!-webPragmatis1 [] has quit [Quit: Leaving.]
21:13<jkwood>Real men write their own blogging scripts and market them to others.
21:14<encode>real men post their blogs to usenet
21:14<iggy>real men don't blog
21:14<iggy>they wear flannel and chop down trees
21:14<iggy>and ride harleys
21:15<iggy>and pulling their old ladies hair during sex isn't something just for fun, it's a way of life
21:15<iggy>and they call their wives/girlfriends their old ladies
21:20<jkwood>I see.
21:21<encode>I guess I'm not a Real Man then
21:24-!-scipio [~scipio@] has joined #linode
21:35-!-linville [] has joined #linode
21:39-!-Schroeder [] has joined #linode
21:42-!-linville [] has quit [Quit: Leaving]
21:43-!-crow [] has joined #linode
21:45-!-chesty [] has quit [Remote host closed the connection]
21:45<crow>does anyone know the policy on running irc servers and dos attacks?
21:45<crow>are there any countermeasures taken agains dos attacks?
21:46<@caker>Yes, we cancel your account if it becomes a recurring problem
21:46<@caker>otherwise, some of the datacenters we use utilize floodguard stuff, but it's still a pain
21:47<@caker>We try hard not to harbor the types of clients that attack ddos attacks, for the benefit of the rest of our users
21:47<crow>cool, thanks :-)
21:48<JDLSpeedy>if we iptables the dos attacks, does that still inpack the rest of the users?
21:48<@caker>JDLSpeedy: if the amount of incoming data exceeds our link speed, yes.
21:48<encode>clearly the best datacentre to run such an irc server in, would be atlanta
21:53<crow>in the faq it says the atlanta datacenter filters common irc ports
21:53<crow>what is meant by filters?
21:53<crow>that's what i thought
21:53<iggy>you cannot connect in or out on those ports
21:54<crow>wasn't sure if encode was being sarcastic ;-p
21:54<@caker>however, you can connect to irc servers that have other ports listening (as most do)
21:56<crow>i need the standard ports...
21:57<@caker>then atlanta isn't the place for you :)
21:57-!-crow [] has quit [Quit: leaving]
21:58<JDLSpeedy>you made crow upset caker
21:58-!-crow [] has joined #linode
22:00-!-chesty [] has joined #linode
22:02<@linbot>bd_: Linode360 - 41, Linode540 - 1, Linode720 - 1, Linode1080 - 0, Linode1440 - 0
22:02<@linbot>bd_: Atlanta360 - 23, Atlanta540 - 0, Atlanta720 - 1, Atlanta1080 - 0, Atlanta1440 - 0
22:02-!-chesty [] has quit [Quit: Coyote finally caught me]
22:03<@linbot>jkwood: Dallas360 - 18, Dallas540 - 0, Dallas720 - 0, Dallas1080 - 0, Dallas1440 - 0
22:03<bd_>JDLSpeedy: just !avail
22:03<@linbot>bd_: Fremont360 - 0, Fremont540 - 1, Fremont720 - 0, Fremont1080 - 0, Fremont1440 - 0
22:03<jkwood>It's of no avail.
22:04<JDLSpeedy>^^ there should be a command to show all the datacenters at once "!avail-all"
22:04<@linbot>mwalling: Linode360 - 41, Linode540 - 1, Linode720 - 1, Linode1080 - 0, Linode1440 - 0
22:04<mwalling>JDLSpeedy: that?
22:05<JDLSpeedy>not combined
22:05<JDLSpeedy>tasaro, caker: but through irc
22:05-!-chesty [] has joined #linode
22:05-!-Schroeder [] has quit [Ping timeout: 480 seconds]
22:09<@caker>I wonder if supyboy can chain commands (not nest)
22:11<mwalling>caker: yeah, i went and googled on it, didnt see anything
22:13<@caker>hmm ...
22:13<@caker>!echo [avail-dallas] [avail-fremont]
22:13<@linbot>Dallas360 - 18, Dallas540 - 0, Dallas720 - 0, Dallas1080 - 0, Dallas1440 - 0 Fremont360 - 0, Fremont540 - 1, Fremont720 - 0, Fremont1080 - 0, Fremont1440 - 0
22:13<mwalling>that works
22:13-!-martinisoft [] has joined #linode
22:14<@caker>!echo [avail-dallas] [echo] [avail-fremont]
22:14<@linbot>Dallas360 - 18, Dallas540 - 0, Dallas720 - 0, Dallas1080 - 0, Dallas1440 - 0 (echo <text>) -- Returns the arguments given it. Uses our standard substitute on the string(s) given to it; caker (or caker), spyroboy, -56, linbot, #linode, ~caker,, 13 Mar 2008, Thu Mar 13 22:14:04 2008, and Wed Apr 29 13:12:28 1987 are all handled appropriately. Fremont360 - 0, Fremont540 - 1, Fremont720 - 0, (1 more message)
22:14<martinisoft>anyone here familiar with running nginx on ubuntu/debian ?
22:14<mwalling>!echo [avail-dallas] [echo ,] [avail-fremont]
22:14<@linbot>Dallas360 - 18, Dallas540 - 0, Dallas720 - 0, Dallas1080 - 0, Dallas1440 - 0 , Fremont360 - 0, Fremont540 - 1, Fremont720 - 0, Fremont1080 - 0, Fremont1440 - 0
22:14<@caker>ugly, but it works
22:15<mwalling>!echo [avail-atlanta] [echo ,] [avail-dallas] [echo ,] [avail-fremont]
22:15<@linbot>Atlanta360 - 23, Atlanta540 - 0, Atlanta720 - 1, Atlanta1080 - 0, Atlanta1440 - 0 , Dallas360 - 18, Dallas540 - 0, Dallas720 - 0, Dallas1080 - 0, Dallas1440 - 0 , Fremont360 - 0, Fremont540 - 1, Fremont720 - 0, Fremont1080 - 0, Fremont1440 - 0
22:15<bd_>!echo PING 0
22:15<mwalling>bd_: heh
22:15*scorche glares at linbot
22:16<martinisoft>or anyone familiar with ubuntu in general?
22:16-!-jkwood [] has quit [Quit: rebooting linode]
22:16<martinisoft>have a couple quick security-related questions
22:16<@caker>!alias add avail-all echo [avail-atlanta] [echo ,] [avail-dallas] [echo ,] [avail-fremont]
22:16<@linbot>caker: The operation succeeded.
22:16<@linbot>caker: The operation succeeded.
22:16<@linbot>Atlanta360 - 23, Atlanta540 - 0, Atlanta720 - 1, Atlanta1080 - 0, Atlanta1440 - 0 , Dallas360 - 18, Dallas540 - 0, Dallas720 - 0, Dallas1080 - 0, Dallas1440 - 0 , Fremont360 - 0, Fremont540 - 1, Fremont720 - 0, Fremont1080 - 0, Fremont1440 - 0
22:16<JDLSpeedy>nice job caker
22:16<martinisoft>nice caker
22:17<mwalling>annoying trailing space before the , though
22:17<mwalling>!echo [avail][echo ,]
22:17<@linbot>Linode360 - 41, Linode540 - 1, Linode720 - 0, Linode1080 - 0, Linode1440 - 0 ,
22:18<@caker>!alias remove avail-all
22:18<@linbot>caker: The operation succeeded.
22:18<mwalling>nope... thought it was using the ' ' between the [][]
22:18<@caker>!alias add avail-all echo [avail-atlanta] [echo |] [avail-dallas] [echo |] [avail-fremont]
22:18<@linbot>caker: The operation succeeded.
22:18<@linbot>Atlanta360 - 23, Atlanta540 - 0, Atlanta720 - 0, Atlanta1080 - 0, Atlanta1440 - 0 | Dallas360 - 18, Dallas540 - 0, Dallas720 - 0, Dallas1080 - 0, Dallas1440 - 0 | Fremont360 - 0, Fremont540 - 1, Fremont720 - 0, Fremont1080 - 0, Fremont1440 - 0
22:18<mwalling>heh, thats a fix :P
22:18<@linbot>caker: The operation succeeded.
22:18<bd_>how does linbot handle recursive aliases? >.>
22:19<mwalling>flush dumps config to file?
22:19<@caker>mwalling: yes
22:19*mwalling notes that
22:20-!-jkwood [] has joined #linode
22:20<@caker>!alias add foo [foo]
22:20<@linbot>caker: The operation succeeded.
22:20<@caker>uh oh
22:21<@linbot>bd_: Linode360 - 41, Linode540 - 1, Linode720 - 0, Linode1080 - 0, Linode1440 - 0
22:21<bd_>alive, but is another thread spinning still or something? :)
22:22<@caker>no, looks idle
22:22<encode>!alias add lol [fool]
22:22-!-Schroeder [] has joined #linode
22:24<@caker>ok .. this worked: alias add foo foo
22:24<@caker>RuntimeError: maximum recursion depth exceeded <--
22:24<@caker>linbot: botsnack
22:24<@linbot>caker: Botsnacks are stupid, donate to my project instead.
22:24<tpope>what kind of bot is that
22:24<tpope>sounds like ruby
22:25<tpope>I guess RuntimeError is pretty language agnostic
22:25<@caker>!alias remove foo
22:25<@linbot>caker: The operation succeeded.
22:25<@linbot>caker: The operation succeeded.
22:25<martinisoft>any ubuntu/debian people in here?
22:25<@caker>mwalling: what's shakin?
22:25<@caker>er .. martinisoft
22:27<martinisoft>I'm trying to run nginx on my new ubuntu 7.10 linode
22:28<martinisoft>now in some conigs it has it running as another user, I assume it's not wise to fire up anything as root, yes?
22:28<iggy>it has to start as root to bind to port 80
22:28<iggy>then it can switch to a different user
22:29<martinisoft>im looking at it now and the master is root, but the worker is nobody
22:29<iggy>same concept
22:29<iggy>what's the issue?
22:30<martinisoft>well just a related thing to it, any of the directories I point it to have to have nobody as the owner?
22:30<iggy>only if you want it to write there
22:30<iggy>which you usually don't
22:30<iggy>otherwise it just needs read perms
22:31<martinisoft>ah good
22:31<martinisoft>thats all I was worried about
22:31<martinisoft>it seems to be running fine, but I hate running into weird permission problems
22:32<martinisoft>thanks though
22:36-!-martinisoft [] has quit [Quit: gone]
22:50-!-lakin [] has joined #linode
22:55-!-atourino [~Antonio@] has joined #linode
23:02-!-jacob [~jacobmp@] has quit [Quit: later]
23:07-!-MadeOfWin [] has joined #linode
23:07<MadeOfWin>is linode for lunatix?
23:08<opello>some of us are pretty crazy
23:10<bd_>MadeOfWin: is that some distro?
23:11-!-hfb [~hfb@] has quit [Quit: Leaving]
23:12-!-FireSlash [] has joined #linode
23:14<MadeOfWin>nah is a term for lunatic linux users :)
23:15<jkwood>You don't have to be crazy to use a linode.
23:15<jkwood>But it helps sometimes.
23:17<bd_>Assuming it's not the "rm foodir/* -rf as root at 5am on a production system with zero sleep" kind of crazy
23:18<bd_>or the "that, minus backups" kind of crazy
23:18<Bdragon>You mean foodir /*
23:18<jkwood>Oh, I never erase my foodir.
23:18<bd_>Bdragon: or foodir/.* :)
23:19<bd_>depending on where foodir is
23:19<encode>yeah, i've made the .* mistake before, but only with a cp, so it wasn't really a problem
23:19<encode>cp just complains but doesn't break anything
23:22<bd_>or overzealous tab completion: gcc -o foo.c foo.c :)
23:24-!-Bass10 [] has quit []
23:25-!-Rifkin [] has quit [Quit: leaving]
23:28<@linbot>New news from forums: Monitoring packages? in Feature Request/Bug Report <>
23:44-!-atourino [~Antonio@] has quit [Quit: Leaving.]
23:59-!-VS_ChanLog [] has left #linode [Rotating Logs]
23:59-!-VS_ChanLog [] has joined #linode
---Logclosed Fri Mar 14 00:00:34 2008