Brad Fitzpatrick ([info]bradfitz) wrote in [info]lj_dev,
@ 2005-01-20 02:48:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Power-loss post-mortem
The post you've all been waiting for! Why we lost all our power, and why it took us so long to come back up afterwards....

(Warning: it's late and I'm tired/rambly, so this post might be incoherent... go ahead and ask questions...)

Why we lost all our power...
Another customer in the facility accidentally pressed the EPO button, then depressed it, replaced the protective case, and left the building. Intenap all thought it was their UPS systems failing, but then logged into them, saw EPO shutdown notifications, and couldn't find any EPO cases open or pressed, so probably freaked out for a bit thinking there was a short in the walls that triggered the EPO, only to get a confession a day or so later.

EPO, by the way, stands for Emergency Power Off and it's a national fire/electrical requirement for firefighters to be able to press these big red buttons near all exits that turn off all power in the entire data center. This is the second time this has happened to us in the years I've been there. The first time the button was unlabeled and unprotected and some dude thought it opened the door. This time we have no clue why it was pressed... maybe that dude tripped and fell onto it... mystery.

Internap will be putting alarms and tamper-proof indicators on the plastic cages surrounding the EPO buttons now, though, so at least if this happens again in the future they'll know why.

Anyway, moving on....

Why it took us so long to come back up...
Ton of reasons:

Faulty mobos/NICs: We have 9 machines with faulty motherboards with embedded NICs that don't do auto-negotiation properly. They only work with certain switches, so they reboot fine, but then their gigabit network comes up at 100 half duplex or something that doesn't work. To get them back up they need somebody at the NOC to plug them into a compatible switch, let them autonego, then switch them to their real switch. Setting the speed/duplex settings on both the host and/or switch themselves doesn't work.... most annoying. We're getting working dual-port gigabit PCI NICs for those machines, rather than replacing their motherboards.

Database start-up: All but a couple of our machines came back up when the power was restored, less than an hour later, but on our databases we intentionally don't have the database start back up on boot. In normal circumstances, if a single machine dies, it died for a reason and we want to investigate it. Normally that doesn't matter either, because we have 2+ of everything. But when every single database restarts, that leaves us with no alive databases, and we have to manually start them all.

Data validation: We could've just blindly started all the databases and trusted they worked, but we didn't trust them. We ran innodb tablespace checksum checks on everything, and also did backups of a lot of the databases before we even tried to bring them back up. (the act of bringing them back up modifies the tablespace, and we didn't want them messing themselves up worse, so a pre-backup was for paranoia...)

MyISAM vs InnoDB: When you lose power to a MySQL db w/ MyISAM tables, the indexes are generally messed and you need to rebuild. Fortunately almost all our databases are purely InnoDB nowadays, so that wasn't a huge problem. Unfortunately, though, the global DB (which is required even to get the site up in partial mode where some users are available and others aren't) is still like 5% myisam and we just hadn't got around to converting those few remaining tables to innodb yet. So every machine in the global cluster required index rebuilds and data checks. That was annoying. The Chef user cluster was also MyISAM (our last MyISAM user cluster), so rather than trust Chef, we restored from an old Chef backup and replayed binlogs to catch it up. That took some time.

Disk cache issues: We have battery-backed RAID cards with write-back caches. That means the RAID card immediately acknowledges writes and tells the OS (and thus DB) that they're done immediately, before they're on disk. This speeds up the DB. But if you lose power, those writes would normally be lost, which is why we have battery-backups on all the cards, and we even monitor the battery health w/ our automated checks. But unknown to us, the raid cards didn't disable the write caching on the drives themselves.... which is frickin' useless! If the controller is already lying to the OS (but doing it safely!) why should the disks behind the controller also lie, but unsafely, for minimal benefit? Our bad there. We should've had that right. So a couple machines were just gibberish afterwards and had to be restored from backup and had their binlogs replayed to catch the backups up to present.

Binlog syncing: We weren't using the option to sync binlogs to disk, so we lost a small number of transactions right before the power loss in the case of clusters that we had to restore from backup. Regrettably, we won't be able to get those posts or comments back.

Slaves tuned for speed: A lot of slave servers (mostly in the global cluster, since the user clusters are almost all master-master now) were tuned for speed, with unsafe filesystem/sync options that favored speed over reliability. Which is normally okay, since you'd lose one machine, not all of them. But we lost all of them, so restoring them all from good slaves was time-consuming.

Things we're doing to avoid this crap in the future...
We're:

-- getting working NICs in those 9 machines

-- all our DBs have redundant power supplies. we'll be plugging one side into Internap's, and the other side into our own UPS, which itself is plugged into Internap's other power grid. that way if EPO is pressed, we'll have 1-4 minutes to do a clean shutdown. (but if we do the rest of the stuff right, this step isn't even required, including having UPSes... in theory... but the UPSes would be comforting)

-- disable disk caching behind all our RAIDs. (bleh... wanna kick ourselves for this, but also the raid vendors for even defaulting and/or allowing it in a BBU write-back setup) but also testing all existing and new hardware to make sure data makes it to disk and pulling power in the middle of write-heavy operations, then verifying the resulting disk image later with the expected result.

-- finish our MyISAM to InnoDB migration, so we don't have to deal with MyISAM index rebuilds

-- enabling binlog sync options

-- stop tuning slaves for speed. this used to matter, but we don't really do the slave thing as much as we used to, so the gain isn't worth it.

-- user level backup harness. we already have a tool to backup a single user's to a GDBM file, incrementally. (so if we run it a day later on the same file, it only updates the changes) so we plan to wrap a major harness around that tool and be backup up all users, all the time. this means that in the event of a future major corruption/outage, we'll be able to restore user-at-a-time, and even to a different database cluster than the one they came from. this also means we can prioritize recovery based on account status, popularity, attempted activity, etc. (and yes, we'll continue doing system-level backups as well, but it's good to have data in different formats just to be paranoid...)

-- also, we already bought a bunch more disk space that we installed today, so we have more room to do backups for bizarre non-typical reasons, and don't need to compress/shuffle so much stuff to make room sometimes.


Page 1 of 9
<<[1] [2] [3] [4] [5] [6] [7] [8] [9] >>

(Post a new comment)


[info]swerved
2005-01-20 02:49 am UTC (link)
Thanks for the info.

(Reply to this) (Thread)(Expand)

cool
[info]zennywitch
2005-01-20 03:43 am UTC (link)
dude, you've got my icon.

(Reply to this) (Parent)(Thread)(Expand)

Re: cool - [info]swerved, 2005-01-26 03:31 am UTC (Expand)
(no subject) - [info]garrik, 2005-01-21 03:19 am UTC (Expand)
(no subject) - [info]dismaldespot, 2005-01-22 10:17 am UTC (Expand)
(no subject) - [info]serni, 2005-01-23 07:01 am UTC (Expand)
(no subject) - [info]dismaldespot, 2005-01-23 08:07 am UTC (Expand)
(no subject) - [info]bluejayway, 2005-01-25 10:32 am UTC (Expand)

[info]zoepaleologa
2005-01-20 02:59 am UTC (link)
Well personally, I was stunned by the amount of work going on to get it all back. I think you handled it great, and I've hugely appreciated your courtesy in keeping users informed the way you have.

(Reply to this) (Thread)(Expand)


[info]zianchoy
2005-01-20 11:20 am UTC (link)
Me too! :)

(Reply to this) (Parent)

(no subject) - [info]penguin2, 2005-01-20 04:03 pm UTC (Expand)
(no subject) - [info]kuroshii, 2005-01-21 08:34 am UTC (Expand)

[info]chemicalbeats
2005-01-20 02:59 am UTC (link)
Cheers :)

(Reply to this)


[info]claypot
2005-01-20 02:59 am UTC (link)
Good to know what happened. Thank you.

(Reply to this)


[info]kloostec
2005-01-20 03:01 am UTC (link)
Thanks for the analysis.

Is there any good reason to run MyISAM tables over InnoDB tables any more (MySQL 4)? It seems that they cause nothing but problems ;)

(Reply to this) (Thread)(Expand)


[info]bradfitz
2005-01-20 03:12 am UTC (link)
They're good for logging... very small and compact on-disk.

(Reply to this) (Parent)

Yes, MyISAM has uses - [info]jamesd, 2005-01-20 04:45 am UTC (Expand)
Re: Yes, MyISAM has uses - [info]kloostec, 2005-01-21 02:17 am UTC (Expand)

[info]morti
2005-01-20 03:01 am UTC (link)
Excellent, thanks.

(Reply to this)


[info]tsutton
2005-01-20 03:03 am UTC (link)
Thanks for posting it. Does Internap have CCTV which they can catch whoever did it and get him/her to pay for the loss? (i.e. hardware replacement, loss of profit, etc)

(Reply to this) (Thread)(Expand)


[info]kloostec
2005-01-20 03:04 am UTC (link)
You can't really charge someone that kind of money for tripping and falling and hitting the switch accidentally... If, however, they pressed the button labelled "Do not press this button" for the sole purpose of seeing what it would do... then I'd be all for that ;)

(Reply to this) (Parent)(Thread)(Expand)

(no subject) - [info]eddy_, 2005-01-20 03:14 am UTC (Expand)
(no subject) - [info]tsutton, 2005-01-20 03:27 am UTC (Expand)
(no subject) - [info]ajlordnikon, 2005-01-20 05:19 am UTC (Expand)
(no subject) - [info]galbinus_caeli, 2005-01-20 06:10 am UTC (Expand)
(no subject) - [info]fweebles, 2005-01-20 08:02 am UTC (Expand)
(no subject) - [info]elmegil, 2005-01-20 08:03 am UTC (Expand)
(no subject) - [info]zabali_clawbane, 2005-01-20 10:11 am UTC (Expand)
(no subject) - [info]triadruid, 2005-01-20 12:10 pm UTC (Expand)
Not quite - [info]geekwench, 2005-01-20 01:26 pm UTC (Expand)
Schrödinger's Cover - [info]breklor, 2005-01-20 04:20 pm UTC (Expand)
Re: Schrödinger's Cover - [info]angela_la_la, 2005-01-20 08:25 pm UTC (Expand)
Re: Schrödinger's Cover - [info]breklor, 2005-01-20 11:42 pm UTC (Expand)
don't shoot me; it had to be said - [info]gumbyavatar, 2005-01-23 12:29 am UTC (Expand)
Re: don't shoot me; it had to be said - [info]bluejayway, 2005-01-25 10:34 am UTC (Expand)
Re: don't shoot me; it had to be said - [info]waitingonhope, 2005-02-28 07:32 pm UTC (Expand)
Re: don't shoot me; it had to be said - [info]gumbyavatar, 2005-02-28 08:24 pm UTC (Expand)
Re: Not quite - [info]shepardshadows, 2005-01-31 04:07 am UTC (Expand)
Re: Not quite - [info]wyrd_sane, 2005-02-03 02:23 pm UTC (Expand)
(no subject) - [info]jaigh_taylor, 2005-01-20 12:47 pm UTC (Expand)
(no subject) - [info]os, 2005-01-20 01:45 pm UTC (Expand)
(no subject) - [info]volkai, 2005-01-22 07:02 am UTC (Expand)
(no subject) - [info]wyrd_sane, 2005-02-03 02:26 pm UTC (Expand)

[info]phonetic
2005-01-20 03:03 am UTC (link)
ya done good, brad & company. kudos.

(Reply to this) (Thread)(Expand)


[info]imdaewen
2005-01-20 03:35 am UTC (link)
ICON LOVE! Fantastic.

(Reply to this) (Parent)(Thread)(Expand)

(no subject) - [info]phonetic, 2005-01-20 08:36 am UTC (Expand)
(no subject) - [info]kimothy, 2005-01-20 09:13 am UTC (Expand)
(no subject) - [info]phonetic, 2005-01-20 10:15 am UTC (Expand)
(no subject) - [info]johncoxon, 2005-01-20 09:16 am UTC (Expand)
(no subject) - [info]phonetic, 2005-01-20 10:07 am UTC (Expand)
(no subject) - [info]jandriel, 2005-01-20 09:37 am UTC (Expand)
(no subject) - [info]lorithefreak, 2005-01-20 09:51 am UTC (Expand)
(no subject) - [info]phonetic, 2005-01-20 10:13 am UTC (Expand)
(no subject) - [info]lorithefreak, 2005-01-20 10:18 am UTC (Expand)
(no subject) - [info]johncoxon, 2005-01-20 10:17 am UTC (Expand)
(no subject) - [info]lorithefreak, 2005-01-20 10:20 am UTC (Expand)
(no subject) - [info]triadruid, 2005-01-20 12:13 pm UTC (Expand)
(no subject) - [info]blueheron, 2005-01-20 01:14 pm UTC (Expand)
(no subject) - [info]triadruid, 2005-01-20 08:33 pm UTC (Expand)
(no subject) - [info]lorithefreak, 2005-01-20 02:34 pm UTC (Expand)
(no subject) - [info]zra, 2005-01-20 01:54 pm UTC (Expand)
(no subject) - [info]phonetic, 2005-01-20 02:44 pm UTC (Expand)
(no subject) - [info]pendlemac, 2005-01-20 03:04 pm UTC (Expand)
(no subject) - [info]phonetic, 2005-01-20 03:22 pm UTC (Expand)
(no subject) - [info]pendlemac, 2005-01-20 04:12 pm UTC (Expand)
(no subject) - [info]lougolas, 2005-01-20 04:38 pm UTC (Expand)
(no subject) - [info]phonetic, 2005-01-20 08:03 pm UTC (Expand)
(no subject) - [info]thesourie, 2005-01-31 07:50 pm UTC (Expand)
(no subject) - [info]quintessenceanx, 2005-01-21 09:45 am UTC (Expand)
(no subject) - [info]neoangelss, 2005-01-21 06:02 pm UTC (Expand)

[info]tefkas
2005-01-20 03:05 am UTC (link)
Thanks for the update.

(Reply to this)


[info]phelyan
2005-01-20 03:06 am UTC (link)
Ooooh, the bane of the EPO buttons. I've been witness to a whole room full of servers suddenly becoming very quiet because someone had tried to walk out of the door with an A3 graphics tablet on his shoulder and had managed to bump the switch. Shit happens...

(Reply to this) (Thread)(Expand)


[info]galbinus_caeli
2005-01-20 06:13 am UTC (link)
It's better than hitting the fire suppression button. I remember my first time in a raised floor and being told that if I hit that button I would be fired, my family would be fired, and all my decendents for seven generations would be fired.

One button to cause tens of millions of dollars worth of equipment damage. Plus data loss. Plus lost business.

(Reply to this) (Parent)(Thread)(Expand)

(no subject) - [info]phelyan, 2005-01-20 06:18 am UTC (Expand)
(no subject) - [info]galbinus_caeli, 2005-01-20 06:27 am UTC (Expand)
(no subject) - [info]chris, 2005-01-20 06:42 am UTC (Expand)
(no subject) - [info]galbinus_caeli, 2005-01-20 06:46 am UTC (Expand)
(no subject) - [info]tiassa, 2005-01-20 07:01 am UTC (Expand)
(no subject) - [info]kingfox, 2005-01-20 08:11 am UTC (Expand)
halon, epos, and the like. - [info]nimbius, 2005-01-20 03:45 pm UTC (Expand)
(no subject) - [info]heypete, 2005-01-21 12:29 am UTC (Expand)
(no subject) - [info]drewkitty, 2005-01-24 06:23 pm UTC (Expand)
Buttons and why people feel the need to press them. - [info]elocin_tonde, 2005-01-20 05:22 pm UTC (Expand)
Re: Buttons and why people feel the need to press them. - [info]selahpraise4him, 2005-02-02 12:37 pm UTC (Expand)
What the blue, melting hell? - [info]triadruid, 2005-01-20 03:12 pm UTC (Expand)
Re: What the blue, melting hell? - [info]freebirdpat, 2005-01-21 04:29 am UTC (Expand)
Re: What the blue, melting hell? - [info]mmays, 2005-01-21 06:28 pm UTC (Expand)

[info]mus_mus
2005-01-20 03:09 am UTC (link)
u guys did a great job trying to get the LJ up and running asap...tks for all ur hardwork :D

(Reply to this)

Thanks for the info!
[info]shadowquill
2005-01-20 03:10 am UTC (link)
"only to get a confession a day or so later."
*hehehe*

(Reply to this)


[info]adrieljohnson
2005-01-20 03:11 am UTC (link)
What you could do is program the UPS to send a command to the server to do a clean shutdown. I think after the EPO is pressed your not gonna know unless your in the building.

(Reply to this) (Thread)


[info]bradfitz
2005-01-20 03:14 am UTC (link)
But the thing is, if we're pure InnoDB and all writes are truly hitting disk (or battery-backed RAM), an unclean shutdown vs. a clean shutdown doesn't matter /that/ much....

(Reply to this) (Parent)(Thread)(Expand)

(no subject) - [info]adrieljohnson, 2005-01-20 03:18 am UTC (Expand)
(no subject) - [info]makovette, 2005-01-20 03:46 am UTC (Expand)
(no subject) - [info]supersat, 2005-01-20 04:27 am UTC (Expand)
(no subject) - [info]galbinus_caeli, 2005-01-20 06:16 am UTC (Expand)
(no subject) - [info]chris, 2005-01-20 06:50 am UTC (Expand)
(no subject) - [info]blkrose2004, 2005-01-20 07:57 am UTC (Expand)
UPSes and shutdowns - [info]edm, 2005-01-20 12:02 pm UTC (Expand)

(Reply from suspended user)
(no subject) - [info]jamesd, 2005-01-20 05:02 am UTC (Expand)
(no subject) - [info]legolas, 2005-01-20 02:32 pm UTC (Expand)

[info]psychme
2005-01-20 03:11 am UTC (link)
I am happy to support LJ via paid accounts for myself and occasionally others, because you deal with your users very professionally. Thank you for your transparency about all this. :) I'm not a huge techie, but I appreciate your sharing.

(Reply to this)


[info]eddy_
2005-01-20 03:11 am UTC (link)
Thanks for all your work guys.

I hope someone gave that 'other customer' a damn good roasting! Muppet.

(Reply to this) (Thread)


[info]phatfhorn
2005-01-20 05:09 am UTC (link)
I couyld go for a roast muppet right now myself...

(Reply to this) (Parent)

Off-Site (Remote) Backups
[info]odious
2005-01-20 03:12 am UTC (link)
In the event that the EPO is actually needed (some sort of disaster at Intenap), I was kind of curious if you guys do any of your backups to off-site (remote) servers. It's pretty unlikely that the Intenap facility would actually be destroyed though.

(Reply to this) (Thread)

Re: Off-Site (Remote) Backups
[info]datasquid
2005-01-21 09:40 pm UTC (link)
Ahem. No reply yet? This is kind of important. Actually, it's so important that I assume they do it :)

(Reply to this) (Parent)(Thread)(Expand)

Re: Off-Site (Remote) Backups - [info]odious, 2005-01-21 11:04 pm UTC (Expand)

[info]schnee
2005-01-20 03:13 am UTC (link)
Thanks for the info, brad. That sure was an interesting read.

BTW, is there any way we can thank you for how you (all of you, that is) handled this problem? It was really good to see that you were actually taking things seriously, erring on the safe side and not just trying to rush the site back up as fast as possible. ^^

(Reply to this) (Thread)


[info]tsutton
2005-01-20 03:29 am UTC (link)
We could buy more paid accounts so they can buy better UPS to keep the servers running after the power down and allow the servers to be shut down clean & smoothly.

(Reply to this) (Parent)(Thread)(Expand)

(no subject) - [info]schnee, 2005-01-20 03:35 am UTC (Expand)
(no subject) - [info]tsutton, 2005-01-20 03:40 am UTC (Expand)
(no subject) - [info]schnee, 2005-01-20 03:43 am UTC (Expand)
(no subject) - [info]bubblebee, 2005-01-20 04:16 am UTC (Expand)
(no subject) - [info]schnee, 2005-01-20 04:20 am UTC (Expand)

[info]sazbah
2005-01-20 03:18 am UTC (link)
pffh... Yeh, I know big red buttons are just ASKING to be pressed, but in a place like that, keep your hands in you pockets, and your kids on leashes.

Thankyou for your work getting the site back up, and for treating us with respect and professionalism, even though a great deal of us (including, unfortunately, myself) do not even pay to use your site. You guys are amazing.

(Reply to this) (Thread)(Expand)


[info]soliss
2005-01-20 12:15 pm UTC (link)
*sings* "Cause I've got one hand in my pocket... And the other one is pressin' the EPO button.... Yeah."

(Reply to this) (Parent)

(no subject) - [info]syberghost, 2005-01-20 07:35 pm UTC (Expand)
(no subject) - [info]sazbah, 2005-01-20 09:06 pm UTC (Expand)

[info]petersheil
2005-01-20 03:20 am UTC (link)
Back in "the old days" I witnessed someone catching a falling manual folder and tripping the Big Red Button on our mainframe system as a result. Much hilarity [well something a bit like that] and several thousand disgruntled students and staff. Fortunately our restart was a hell of a lot quicker than LJ's.

Well done to all the LJ staff and can I join the party to roast the muppet user who tripped it in the first place?

Peace
petre

(Reply to this) (Thread)(Expand)


[info]jlwrites
2005-01-20 07:17 pm UTC (link)
Personally, I think that user soils the good name of Muppet.

(Reply to this) (Parent)(Thread)(Expand)

(no subject) - [info]petersheil, 2005-01-21 12:54 am UTC (Expand)
(no subject) - [info]berkeleyfarm, 2005-01-20 08:34 pm UTC (Expand)
(no subject) - [info]petersheil, 2005-01-21 12:58 am UTC (Expand)

[info]isisfrog
2005-01-20 03:23 am UTC (link)
As [info]schnee said, is there any way we can thank you all for all the work you put into a resolution? It really is appreciated, you know! *hugs*

(Reply to this) (Thread)


[info]mns
2005-01-20 11:31 am UTC (link)
[info]cookiesforlj

(Reply to this) (Parent)


[info]ejecutive
2005-01-20 03:30 am UTC (link)
Thanks for the info, I'm glad you are telling us what actually went wrong and any mistakes you could learn from it (most other websites wouldn't).

I guess the guy was having a George Bush moment ("if I push the big red button labbled 'nuke Iraq'...")

(Reply to this) (Thread)

Power loss
[info]funlovingme
2005-01-20 07:12 am UTC (link)
Thank you for your honesty. Just glad that you are back online. *Kudos* to all who helped you.

(Reply to this) (Parent)


[info]ciphergoth
2005-01-20 03:30 am UTC (link)
I'm surprised that write-back cacheing makes the database faster. I thought that databases were generally designed and optimized under the assumption you were using a write-through cache, and that when a write returned that means it's on oxide...

(Reply to this) (Thread)(Expand)


[info]galbinus_caeli
2005-01-20 06:20 am UTC (link)
It depends on your r/w ratio and latency among other factors. Every database activity tunes a little differently.

(Reply to this) (Parent)

(no subject) - [info]jamesd, 2005-01-20 01:40 pm UTC (Expand)
(no subject) - [info]deprivation, 2005-01-20 04:58 pm UTC (Expand)
(no subject) - [info]inqueery, 2005-01-20 07:34 pm UTC (Expand)
(no subject) - [info]uber_gdh, 2005-01-29 07:50 pm UTC (Expand)
(no subject) - [info]deprivation, 2005-01-30 03:27 pm UTC (Expand)
(no subject) - [info]inqueery, 2005-01-20 07:33 pm UTC (Expand)
(no subject) - [info]ogredrew, 2005-01-20 11:17 pm UTC (Expand)
(no subject) - [info]jamesd, 2005-01-21 01:10 pm UTC (Expand)

[info]fidelity_astro
2005-01-20 03:34 am UTC (link)
zzz

(Reply to this)


[info]cpn_jacksparrow
2005-01-20 03:37 am UTC (link)

what will happen if someone buys sixapart... like yahoo for instance?

(Reply to this) (Thread)


[info]cparker
2005-01-20 05:04 am UTC (link)
Then we shall all be sucked into the Yahell! Universe yet again... Just like we were with GeoCities, just like we were with eGroups, just like we were with LAUNCH... Need I go on?

If something like that ever DOES happen, please don't let Yahell!'s sucky customer support interfere with the volunteer support system here. I would cry. A lot.

(Reply to this) (Parent)(Thread)(Expand)

(no subject) - [info]decadence1, 2005-01-20 05:23 am UTC (Expand)
:-D - [info]freckles42, 2005-01-20 07:10 am UTC (Expand)
(no subject) - [info]donnaidh_sidhe, 2005-01-20 10:06 am UTC (Expand)
(no subject) - [info]decadence1, 2005-01-20 10:17 am UTC (Expand)
geocities survivors!!! - [info]d_e_l_i_r_i_u_m, 2005-01-20 05:32 am UTC (Expand)
(no subject) - [info]cpn_jacksparrow, 2005-01-20 06:07 am UTC (Expand)
(no subject) - [info]emmavescence, 2005-01-20 06:39 am UTC (Expand)
(no subject) - [info]cpn_jacksparrow, 2005-01-20 06:44 am UTC (Expand)
(no subject) - [info]elusis, 2005-01-20 07:42 am UTC (Expand)

[info]eiren
2005-01-20 03:39 am UTC (link)
You should train a monkey to sit there on an excercise bike, linked to a generator... just in case of course ;)

(Reply to this) (Thread)(Expand)


[info]piphil
2005-01-20 03:50 am UTC (link)
Could get Frank to run in a wheel. You'd just have to be careful he wouldn't start chewing any wiring... :-P

(Reply to this) (Parent)

JB221 - [info]david89, 2005-01-20 11:29 pm UTC (Expand)
Re: JB221 - [info]eiren, 2005-01-21 02:32 am UTC (Expand)

Page 1 of 9
<<[1] [2] [3] [4] [5] [6] [7] [8] [9] >>

Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…