Skip to main content.
February 22nd, 2006

tektonic teamspeak

Ok, a while back when TekTonic (A’tuin’s ill-favored hosting service) crashed and had all kinds of problems in general, this caused a reboot of my system. Quite understandable that. Unfortunately, the box had been up for a while (probably 3 months or so of uptime) and they must have applied some kernel patches or something to their system because it has been unstable ever since.

Most notable among these problems is a heinous memory management problem - new processes segfault in stead of making something else swap out. Only slightly less notable is the fact that TeamSpeak ceased to work at the same time.

ammon@atuin:/usr/local/tss$ ./teamspeak2-server_startscript start
starting the teamspeak2 server
Runtime error   0 at BFFFFBB8
./teamspeak2-server_startscript: line 92: 27874 Segmentation fault      ./server_linux -PID=tsserver2.pid

Yeah. Fun stuff. Over time, the only difference in the output tends to be the memory address at which it borks out on me ;) Didn’t really bother me much since I wasn’t actually hosting any chat services - I had actually only installed it on a whim in the first place anyways.

I’m also not the only one with this problem. Before they mysteriously vanished, the TekTonic support forums had at least 3 or 4 threads complaining about this exact problem.

Well, earlier this week, I had a discussion with guild leader on CoV where we talked about possibilities for voice chat. I brought up A’tuin and its currently functional Ventrilo setup - but the Vent license only allows 8 clients to connect to a non-pro account… and they’re very picky about with whom they will do business (pro accounts supporting a minimum of 1000 clients at once spread across multiple servers and stuff).

Our SG has more than 8 members now, and it would be a shame if people were getting rejected just because Vent refuses to sell me a license. So, I started looking back into TS again today. It still crashed.

Using the trick taught to me back during my first Google tech interview, I applied strace to the binary. Lo and behold, the trace reveals that the crash occurs whilst trying to open /usr/lib/locale/en/LC_CTYPE. I checked, and sure enough… my machine seemed to have a broken installation of the locales package… and along with it, a rather old version of libc.

So… patching these up gives me progress. I’m going to see what else needs to be done to bring things up to speed, but I might actually get TS running on this monster tonight.

Update - 12:30am, Feb 22

After updating glibc and locales (and practically every other system library), I am still getting the following output from strace:

…snip…
open(”/usr/lib/locale/locale-archive”, O_RDONLY|O_LARGEFILE) = 4
fstat64(4, {st_mode=S_IFREG|0644, st_size=1583760, …}) = 0
mmap2(NULL, 1583760, PROT_READ, MAP_PRIVATE, 4, 0) = 0×40170000
close(4)                                = 0
pipe([4, 5])                            = 0
— SIGSEGV (Segmentation fault) @ 0 (0) —
rt_sigreturn(0)                         = 136425499
…snip…

Blech. So… it’s closing the locale archive document and then trying to pipe it somewhere else? Don’t know if this is actually the problem though. I really need to learn how to use this utility better. Mumble, grumble. I’m gonna dig through ML and forums and stuff to see if I can come up with anything further.

Update - 7:30am, Feb 23

Well, fooey. I looked at man pages online (since I can’t seem to locate which Debian package actually installs the syscall man pages for me…) and aside from discovering that there is apparently nothing fishy about the pipe call, noticed something else in the sigreturn man page:

sigreturn never returns.

Well, not terribly interesting. If the machine is segfaulting, the kernel is well within its rights to make whatever syscalls are necessary to recover and report error messages to me and stuff, no? So that might be a dead end.

Looking further up through the entire stack trace, I noticed that attempts to read from this /etc/ld.so.nohwcap file that I’d never heard of were all failing. Google turns up this blog entry. So, I created the file and nothing really changed except that the program doesn’t fail on those particular reads any more. I’m assuming that the access to /etc/ld.so.preload is also harmless, so will ignore this one.

So, I figured I’d try to force a segfault of my own to compare the two straces for any similarities. Not much there, eh? But when I do an ltrace on my file - it clearly specifies what’s crashing.

The ltrace of the TS binary is way too verbose to put online anywhere, so yeah. It looks like it’s dying on some assortment of pthreads mutex calls, which I guess is entirely possible and realistic.

Update - 8:50am, Feb 23

The TeamSpeak forums seem to have a handfull of threads dealing with this exact sort of problem - which seems to have affected people on multiple distros (including Debian). A German thread is the longest discussion of the problem and seems to have an answer.

They use setarch to fool the machine into thinking that it is something it is not… Erm, ok, I guess. It sounds like problems with architecture-specific behaviors failing when run on the wrong kind of box. That makes some sort of sense.

It especially makes sense on my machine - a VPS on dual Opterons. Not the most normal architecture out there. When you run uname -m, it just says i686… so shrug.

Of course, setarch isn’t available for Debian. The solution given in the german thread is to use alien to turn an RPM into a DPKG for installation ;) I’ll try that out later and see what it does to me.

Posted by Ammon as howto, sysadmin, teamspeak, ventrilo, work at 7:53 PM EST

No Comments »

February 16th, 2006

coh/cov build

I was playing around with the CoH/CoV Character Builder yesterday and decided to duplicate my current (and planned builds). And since I was re-creating/planning things in the builder, I figured I may as well dump them here, eh? I’ll prolly go through and link all of the powers to their appropriate descriptions on GameAmp or something.

URL for the character builder is: http://home.comcast.net/~SherkSilver/index.html, but for some reason, b2evolution is blocking the URL - probably some sort of spammish history with Comcast or something :P

Kikichikki

Kiki is the character in limbo. His name comes from my FFXI WHM/BLM Taru result of the random name generator (For some obscure reason that I forget, it wasn’t letting me choose a name to use). I had always planned on making him a summoner whenever I got high enough, but the level treadmill on FFXI is so slow and unforgiving that he never really made it past 20.

He was the first CoH char I ever created, but has been purged and re-created (both as a hero and as a villain) no less than 6 or 7 times now.

If I do ever get around to re-creating him, I’m torn. I would like to preserve some taste of his FFXI class history, but with Tetris already being a healer/summoner/passable nuke - that slot is kind of already taken on the hero side of things.

I’ll prolly post something once I make up my mind as to an appropriate build to live up to Kiki’s name

Update:

Ok, on Feb 19, I finally decided to sit down and come up with a tentative build that I’m going to play with until level 10 to see if I like it.

Kiki will be an Energy Blast/Dark Miasma corruptor with Super Speed and Medicine. This gives him rather potent damage, crowd control, and evac/wipe recovery capabilities. He gets good healing, two rez abilities (one for in combat, one for out), and picks up a summon at level 38.

Archetype: Corruptor
Primary: Energy Blast
Secondary: Dark Miasma

01) --> Power Bolt==> Acc(1)  Dmg(5)  Dmg(5)  Dmg(13)
01) --> Twilight Grasp==> Acc(1)  EndRdx(3)  Heal(3)  Heal(13)  Heal(19)  Rechg(19)
02) --> Tar Patch==> Slow(2)  Slow(7)
04) --> Power Blast==> Acc(4)  Dmg(7)  Dmg(9)  Dmg(27)
06) --> Hasten==> Rechg(6)  Rechg(15)  Rechg(37)
08) --> Sniper Blast==> Acc(8)  Dmg(9)  Dmg(27)  IntRdx(33)  Range(33)
10) --> Howling Twilight==> Range(10)  DisDur(11)  Slow(11)  EndRdx(36)  EndRdx(37)
12) --> Aim==> TH_Buf(12)
14) --> Super Speed==> EndRdx(14)  EndRdx(15)
16) --> Shadow Fall==> DefBuf(16)  DmgRes(17)  DmgRes(17)  DmgRes(21)  EndRdx(21)  EndRdx(33)
18) --> Stimulant==> IntRdx(18)  Range(37)
20) --> Fearsome Stare==> Acc(20)  Fear(39)  TH_DeBuf(39)
22) --> Aid Other==> IntRdx(22)  Heal(23)  Heal(23)  Heal(25)  Heal(25)  Rechg(39)
24) --> Resuscitate==> Rechg(24)  IntRdx(40)  EndRdx(40)  Heal(40)
26) --> Explosive Blast==> Acc(26)
28) --> Petrifying Gaze==> Acc(28)  Hold(29)  Hold(29)  Hold(31)  Rechg(31)  Rechg(31)
30) --> Power Push==> Acc(30)  KB_Dist(34)  KB_Dist(34)  KB_Dist(34)
32) --> Nova==> Acc(32)
35) --> Black Hole==> Acc(35)  Intang(36)  Intang(36)
38) --> Dark Servant==> Heal(38)

Update:

On March 6th, and in the wake of Vomes, I deleted Kiki (who was only level 3 at the time) and will probably be creating him again as a Hero char after all - likely with the same power sets as mentioned above.

Tetris

Archetype: Controller
Primary: Illusion Control
Secondary: Kinetics

Tetris is/was my primary character. I must have created him back during I4 or so (back long before I was paying attention to patch notes and such). He’s incredibly low level for the amount of play-time I’ve put into him - currently only 18.

I’m pretty certain that I like this plan for his development - that he become a primary healer, pick up his future summons as they are made available, and round the whole thing off with a bunch of Ice Mastery.

01) --> Spectral Wounds==> Acc(1)  Dmg(3)  Dmg(5)  Dmg(9)  Rechg(11)  EndRdx(11)
01) --> Transfusion==> Acc(1)  Acc(7)  Heal(7)  Heal(15)  Heal(15)  Heal(19)
02) --> Deceive==> Acc(2)  Acc(3)  ConfDur(5)  ConfDur(23)
04) --> Repel==> EndRdx(4)
06) --> Hover==> DefBuf(6)  DefBuf(46)
08) --> Superior Invisibility==> EndRdx(8)  DefBuf(9)  DefBuf(46)  DefBuf(46)
10) --> Flash==> Acc(10)  Acc(23)
12) --> Blind==> Acc(12)  Dmg(13)  Dmg(13)  Dmg(17)  Hold(17)  Hold(19)
14) --> Fly==> Fly(14)
16) --> Siphon Speed==> Acc(16)  Rechg(43)
18) --> Phantom Army==> Dmg(18)  Dmg(21)  Rechg(21)  Rechg(34)  Rechg(43)  Acc(43)
20) --> Speed Boost==> EndMod(20)  EndMod(25)
22) --> Increase Density==> DmgRes(22)  DmgRes(40)  DmgRes(40)
24) --> Stimulant==> IntRdx(24)  IntRdx(25)  Rechg(27)  Range(27)
26) --> Spectral Terror==> Acc(26)  Fear(31)  Fear(31)
28) --> Aid Other==> Heal(28)  Heal(29)  Heal(29)  Heal(31)  IntRdx(37)  Rechg(40)
30) --> Resuscitate==> Rechg(30)
32) --> Phantasm==> Acc(32)  Dmg(33)  Dmg(33)  Dmg(33)  KB_Dist(34)  Fly(34)
35) --> Transference==> Acc(35)  Acc(36)  EndMod(36)  EndMod(36)  EndMod(37)  Rechg(37)
38) --> Fulcrum Shift==> Acc(38)  Rechg(39)  Rechg(39)  Rechg(39)
41) --> Hibernate==> Rechg(41)  Rechg(42)  Rechg(42)  EndMod(42)
44) --> Frozen Armor==> DefBuf(44)  DefBuf(45)  DefBuf(45)  DmgRes(45)
47) --> Ice Storm==> Acc(47)  Dmg(48)  Dmg(48)  Dmg(48)
49) --> Ice Blast==> Acc(49)  Dmg(50)  Dmg(50)  Dmg(50)

Update

Tetris finally got around to using his free respec (awarded back around I3 or something). He’s since dropped repel in favor of group invisibility and is most likely not going to pick up the medicine power set. No further plans exist for him yet.

Columns

Archetype: Mastermind
Primary: Necromancy
Secondary: Poison

Columns is currently level 23 and holds the distinction of being the first char that I actually planned for more than a level in advance. At 15, I sat down with a pencil and plotted his skill choices through 38.

Future levels are waiting for I7’s Patron Powers to be announced, since I’m probably going to be choosing one of them for my remaining 4 abilities.

01) --> Zombie Horde==> Dmg(1)  Dmg(3)  Dmg(5)  Acc(25)  TH_DeBuf(33)  Heal(33)
01) --> Alkaloid==> Heal(1)  Heal(9)  Heal(9)  Rechg(15)
02) --> Gloom==> Acc(2)  Dmg(3)  Dmg(11)
04) --> Dark Blast==> Acc(4)  Dmg(5)  Dmg(15)
06) --> Combat Jumping==> DefBuf(6)  DefBuf(7)  DefBuf(7)  EndRdx(37)
08) --> Enchant Undead==> Rechg(8)
10) --> Life Drain==> Acc(10)  Dmg(11)  Heal(25)
12) --> Grave Knight==> Dmg(12)  Dmg(13)  Dmg(13)  Acc(19)  TH_DeBuf(19)  Heal(33)
14) --> Super Jump==> Jump(14)
16) --> Elixir of Life==> Range(16)  Rechg(17)  Rechg(17)
18) --> Swift==> Run(18)
20) --> Health==> Heal(20)  Heal(21)  Heal(21)  Heal(40)  Heal(40)
22) --> Stamina==> EndMod(22)  EndMod(23)  EndMod(23)  EndMod(31)  EndMod(31)  EndMod(34)
24) --> Stealth==> EndRdx(24)  DefBuf(36)  DefBuf(36)  DefBuf(37)
26) --> Lich==> Immob(26)  Hold(27)  Heal(27)  Heal(29)  Dmg(29)  Dmg(34)
28) --> Paralytic Poison==> Acc(28)  Hold(31)  Hold(39)  Rechg(39)  Rechg(39)  EndRdx(40)
30) --> Soul Extraction==> Rechg(30)  Rechg(34)
32) --> Dark Empowerment==> Rechg(32)
35) --> Poison Trap==> Acc(35)  Sleep(36)  EndMod(37)
38) --> Noxious Gas==> Rechg(38)

Update

Columns has completed the respec trial and will be dumping his nukes in exchange for debuffs. No other plans have been finalized yet. When I do decide upon how to spend the respec, I’ll post the details in a new post.

Kin’iro

Archetype: Stalker
Primary: Energy Melee
Secondary: Energy Aura

Kini is currently level 7 and isn’t planned quite as seriously as Columns is. It doesn’t really look like any of the stalker nrg powers are not worth having, so the decisions aren’t as clear-cut as they were in the previous case.

The only decisions that I’m really confident about are those made up to level 14 - and possibly that of grabbing super speed some point later in her career. And ditto to Columns’ indecision on levels 41+, as they’re pending I7.

01) --> Energy Punch==> Acc(1)  Acc(9)  Dmg(11)  Dmg(13)  EndRdx(15)  DisDur(15)
01) --> Hide==> EndRdx(1)  DefBuf(3)  DefBuf(31)  DefBuf(31)
02) --> Bone Smasher==> Acc(2)  Dmg(3)  Dmg(7)  Dmg(13)  EndRdx(17)  Rechg(17)
04) --> Kinetic Shield==> DefBuf(4)  DefBuf(5)  DefBuf(5)  EndRdx(9)
06) --> Assassin's Strike==> Acc(6)  Acc(7)  Dmg(11)  Dmg(19)  Dmg(21)  Rechg(21)
08) --> Build Up==> TH_Buf(8)  Rechg(37)
10) --> Recall Friend==> Rechg(10)
12) --> Placate==> Rechg(12)  Rechg(37)
14) --> Teleport==> EndRdx(14)  EndRdx(23)
16) --> Energy Protection==> DmgRes(16)  DmgRes(23)  DmgRes(36)
18) --> Power Shield==> DefBuf(18)  DefBuf(19)  DefBuf(25)  EndRdx(25)
20) --> Entropy Shield==> EndRdx(20)
22) --> Teleport Foe==> Acc(22)  Acc(40)
24) --> Hasten==> Rechg(24)  Rechg(29)  Rechg(29)
26) --> Energy Transfer==> Acc(26)  Dmg(27)  Dmg(27)  Dmg(31)  EndRdx(34)  Rechg(34)
28) --> Energy Drain==> EndMod(28)
30) --> Super Speed==> EndRdx(30)
32) --> Total Focus==> Acc(32)  Dmg(33)  Dmg(33)  Dmg(33)  EndRdx(34)  DisDur(36)
35) --> Conserve Power==> Rechg(35)  Rechg(36)  Rechg(37)
38) --> Overload==> DefBuf(38)  DefBuf(39)  DefBuf(39)  Heal(39)  Heal(40)  Heal(40)

Posted by Ammon as city of heroes, games, mmorpg, play at 8:56 AM EST

2 Comments »

February 15th, 2006

wallpaper yoinkage

Ok, so it's 4am and I'm awake. Nothing new there. I was scrounging sites and looking for some bit of information obscure enough that I'd actually forgotten what my original goal was. Thus, it was only natural that I get sidetracked by whatever shiny object floated past me as I clicked URL's at random.

I landed on a French anime wallpaper site. I'd not been there before, and I started looking at a decently sized collection of images that I'd also never before encountered. Naturally, I decided to acquire them - but the sheer scope of the site lended a non-trivial amount of difficulty to this. At least, it did until I realized that their images were stored in sequentially numbered files in sequentially numbered directories. No zero padding or anything.

This led to the following script, which is currently quite happily churning its way through the 36th directory - whatever show that may actually happen to be ;)

I am making one assumption here, that they haven't divided things up into more than 500 directories. I could just as easily have done the sort of while loop as I did on the inside on the outside, but this is also meant as demonstrative code for future reference.

[bash]
#!/usr/bin/bash
for DIR in `seq 0 500`
do
mkdir $DIR
cd $DIR
IMG = -1
while [ $? != 1 ]
do
((IMG += 1))
wget -c host/$DIR/$IMG.jpg
done
cd ..
rmdir $DIR

if [ $? == 0 ]
then
echo "removed $DIR, assuming we're done"
exit
fi
done
[/bash]

Why not just use wget's spider functionality? I have in the past, but not for something this fun. Besides, this way I don't have any cleanup to do (other than identifying shows and renaming their folders when all is done).

It's working on directory number 45 now ;)

Posted by Ammon as bash, howto, sleep, sysadmin at 4:37 AM EST

No Comments »

purple (and pink) meanies

Tonight I wound up partying with a pair of rather cool players in CoV. On a whim, I asked them about their supergroup (CoH/CoV guild) and was invited to join. I am now a member of Malefactors Anonymous. Our colors are ... pink and purple. It's absolutely hideous on my character. Is humorously bad.

Founder(?) of the group's name is Sweet Sakura - and naturally, she chose colours that worked with her outfit. Other guy is big robot looking thing, so it's funny on him, but not as bad as on my necromancer. I am strongly considering putting together some sort of group photo (with before and after versions) just to prove how bad the transformation is.

It's kind of funny how I happened to hook up with them. All three of us were on the same mission - and Sakura and I were both incredibly annoyed at it. Talking back and forth over public channel whether or not we should group to do it I wound up bumping into her as we both searched for our quarry (ie, we both landed on the same rooftop to regroup and get our bearings). So, yeah.

This should increase my general level of enjoyability in the game. They're cool kids. I also got my stalker alt into the group (catgirl with pink energy punch of doom - Penny actually selected the costume). And, unsurprisingly, she looks good in the pink/purple combo.

If I don't hear any more about my attempts at creating a web page for my WoW guild, odds are high that I'll just scrap it and use the space for something for the CoV group :P

In addition to this group, earlier today, I wound up in another good party - a duo - with a guy who mentioned that he was dissatisfied with his SG, so I might try recruiting him to the pink side as well. Bwahaha!

Update - Mar 6

Apparently it wasn't Sakura's idea to go with the pink... so one can only assume that Kernel is to blame. Shrug. I've since spent a lot of time tweaking my costumes to make them look less ugly in pink/purple and am more or less resigned to my fate.

However... the thought of gradually shifting the purple to a shade of blue (since I do have that much access to the group's settings...) is very tempting in deed :)

Posted by Ammon as city of heroes, eat, mmorpg, personal, play at 1:05 AM EST

No Comments »

February 14th, 2006

skullcrusher mountain

Ok, I know this has been around for a while, but I was listening to Mur Lafferty's Geek Fu Action Grip today and she mentioned it. Which reminded me... It really is the ultimate geeky love song out there.

So, for those of you who aren't familiar with Jonathan Coulton (and those of you who've simply forgotten), or if you're just having a hard time getting into the spirit of the holiday, do yourself a favor and cruise on over to his site and listen yourself to some good old fashioned Skullcrusher Mountain. It'll cheer you right up ;)

(I'm not linking directly to the MP3 as per the artist's wishes - it's not hard to find the download, just scroll down a bit)

A few other recommended Jonathan Coulton songs for today:

Posted by Ammon as humor, music, play, skullcrusher mountain at 4:22 PM EST

No Comments »

« Previous Entries