Dear Lazyweb, please recommend a PAYG 3g dongle

Dear Lazyweb,

I’ve had a “3” USB 3G dongle for a few years. I bought it so that if I’m away from home and there’s some sort of work emergency, or if my home DSL should die, I can have tolerable broadband internet access on my laptop.

It’s been okay as far as the service goes. My main issue with it is that the PAYG top-up lasts for one month at £10 for 1GB data, and if I don’t use it then it disappears. Since I rarely need to use it, any time I do it will invariably have no credit on it and I’ll have to buy some. I know when I do that I’ll use hardly any of it before losing the rest.

This wouldn’t be so terrible, but the 3 web site is awful. Even by the very low standards of a mobile telco. It frequently just does not work. I once managed to register a credit card in order to top up online, but never managed again. That one has now expired so I can’t top up online any more. Customer service is hopeless and I’ve lost the will to fight it.

So, can anyone recommend a 3g USB dongle that:

  • works “out of the box” in Ubuntu 10.04 onwards
  • is on a network that has reasonable UK coverage
  • is PAYG with credit that does not expire, or at least doesn’t expire in as short as one month
  • can provide at least 1GB data for no more than £10

I’m not looking for a smartphone or netbook with built in 3g.


Dear Lazyweb, can you recommend an issue tracker?

I’m looking for a free, open source web-based issue tracker that I can install and run. I would like it to be able to authenticate off LDAP and allow users to rate the importance of the fixing of each issue, as well as the usual commenting.

I already run Request Tracker and don’t really want to adapt that to do it, I’d prefer something simpler.

Any recommendations? Can trac do it?



davee pointed out that more info is probably needed.

It’s for feature requests for various services. There’s lots of them outstanding, and they’re all good, but I have no idea which ones are in most demand from the customers. So I’d like:

  • for users to be able to submit ideas by web and possibly email
  • rate how much they want them implemented
  • for further discussion to be possible inside the issue tracker (web/email)

I know RT can be made to do it, but I currently have it set up for mostly individual customers to raise issues about their individual service, not for everyone to comment on stuff.

Wanted: UK TV listings application

Dear Lazyweb, do you know of a particularly good online TV listings site or application?

We don’t watch a lot of TV, but from time to time there’s some good stuff. I prefer to sit down once a week and look through what is on, save it to a list and then program it in to my PVR. At the moment I use Radio Times, but the site is often down for hours at a time. It’s rather frustrating when I’ve found time to program the PVR but the list of what I want to program is locked away inside a broken web site. The programme guide on the PVR itself is a bit cumbersome to use.

So, anyone got any good alternative sites / services?

Required features:

  • Save shows to a list, diary, whatever
  • Save shows with series link or at least to save every instance of that show name on that channel
  • Has all UK freeview channels
  • Customised channel list

Would be nice:

  • Able to dump out the list of saved shows, their times and channels so I can still program stuff even if the web site is down
  • Radio too

Radio Times fits the above requirements, but as I say it’s very unreliable. DigiGuide looks like it might be good, but it’s a Windows-only application. They say they’ve been working on a Linux version since 2007. I’m currently trying tvguide but am not sure about its “favourites” feature.

I would probably be willing to pay up to £1/month for a service that met all requirements and was actually stable. I know that TV listings data is not free to license. Anyone know how much it costs out of interest?

Wanted: photo management software for Linux

Dear Lazyweb, what do you use for managing your photo collections locally?

At the moment I just dump them all in a directory on the file server, with Jenny’s photos in another. I used to use F-spot, which was okay, but then I wanted to store Jenny’s photos separately from my own and there doesn’t seem to be any way to do this. Is the “right” way to do it to just tag them with who took them, or what?

I don’t want to use Flickr or any other hosted service – I want to store my own photos. They are just for viewing locally – I already use Gallery2 for photos I want to publish.

Dear Lazyweb, where’s my power beep gone in Ubuntu?

Update: Solved! Someone pointed me to the “beep” track of the volume control, which was hidden and muted.

Last month I upgraded my ThinkPad R61 to Ubuntu Jaunty. Recently I noticed that I no longer have the beep when taking it on or off of AC power. I don’t know if it has always been missing since it was installed, or if it went away some time after. The beep still happens at all times prior to the kernel loading, so I don’t think this is BIOS or hardware related. The power applet does know when I am on AC power (or not), and seems able to estimate battery life reasonably well.

Anyone had that before?

Dear Lazyweb, what are some good conferences to consider?

I’m off to FOSDEM again soon, and really looking forward to it, but I decided I should try to make more time for going to other conferences too.

I’m not sure that ShmooCon is really my kind of thing and it’s also in February like FOSDEM so it’s a bit difficult to schedule.

Chaos Communication Congress is more appealing, but that’s in less than a week which is a crazy time to put a conference on. Maybe next year.

Can people recommend any other conferences for UNIX sysadmin networky types?

Update: Actually I take it back, ShmooCon does seem more interesting than I first thought. Maybe in ’10 then.

Possible hardware issue with Tyan S3970 motherboard

Dear Lazyweb,

You will probably want to skip this if you have no knowledge of server motherboards and RAM and/or no interest in helping me.

I have a new server based on a Tyan S3970 motherboard with four DIMMs. It was assembled by the supplier and subjected to a burn-in test. It seems however that they did not look at the BIOS event log before shipping it because when I got it, it was full of messages regarding single-bit memory errors with date stamps stretching back through the previous week. This is plausible since the ECC RAM will correct single-bit errors.

Anyway, so I thought it would be a single bad DIMM, turned off ECC in the BIOS and broke out memtest86+.

What I found was that after approximately 90 minutes, memtest86+ reported errors across the entire memory range (implicating all DIMMs). Here’s an example:

 WallTime   Cached  RsvdMem   MemMap   Cache  ECC  Test  Pass  Errors ECC Errs
 ---------  ------  -------  --------  -----  ---  ----  ----  ------ --------
   1:59:27   8192M     160K  e820-Std    on   off   Std     0      80        0
Tst  Pass   Failing Address          Good       Bad     Err-Bits  Count Chan
---  ----  -----------------------  --------  --------  --------  ----- ----
  7     0  000974b216c -  2420.1MB  9c9a2a71  9c9a0a71  00002000      1
  7     0  00126a320cc -  4714.1MB  819293fd  8192b3fd  00002000      1
  7     0  00114c0012c -  4428.0MB  8e8b2ec2  8e8b0ec2  00002000      1
  7     0  001115920ec -  4373.1MB  652557a0  652577a0  00002000      1
  7     0  00165b030cc -  5723.1MB  86cb57f6  86cb77f6  00002000      1
  7     0  0016069710c -  5638.4MB  b59513f4  b59533f4  00002000      1
  7     0  0014969e0ec -  5270.8MB  15be53f9  15be73f9  00002000      1
  7     0  001094370cc -  4244.4MB  2b779fdd  2b77bfdd  00002000      1
  7     0  00139f8d0ec -  5023.8MB  1c54d9dd  1c54f9dd  00002000      1
  7     0  001568ad0cc -  5480.8MB  318657e8  318677e8  00002000      1

At this point I of course began to suspect the motherboard, but in the interest of thorough testing I decided to try just one pair of DIMMs. These tested for over 3 hours without a problem. I thought perhaps that this pair was good whereas the other pair might be bad, so I swapped them over. The other pair then tested for over 8 hours without error. So it’s definitely not the DIMMs.

I checked that the DIMMs are all identical (they are) and studied the motherboard manual closely:

The memory section on page 28 states:

For optimal dual-channel DDR operation, always install memory in pairs beginning with P1_DIMM7 and P1_DIMM8. Refer to the following table for supported DDRII populations.

The table then shows that you should install the DIMMs in pairs, starting with slots 7 and 8. So, 7→8, 5→8, 3→8 and 1→8 are the only supported configurations.

The server had been delivered with slots 1→4 populated. I have just changed that to 5→8 and it’s now over 4 hours into a test without an error, which is the most I’ve achieved with all 4 DIMMs installed. If we assume that no more errors are encountered, would you be satisfied with this conclusion?

I am still a little bit worried that the motherboard is faulty in some way, because giving a consistent single-bit memory error seems like a really weird outcome for running in an unsupported configuration. I would have thought that it would either not detect the RAM, or it would be OK. Is this behaviour something you would expect?

I’ve opened a support request with Tyan to ask if this is normal behaviour, but I’ve no idea when or if they will respond.

haproxy bafflement

Update 2007-05-05: I sent some strace output to the author of haproxy, Willy Tarreau, and he replied within 24 hours with a full annotation of the strace and a one line patch to fix this issue. That’s what I call support! Here’s his comments and the patch:

I think this is caused by the fact that the end of connection from the client was received BEFORE the connection even established to the server, and when the connection status is checked, there is nothing anymore in the buffer because all data was just sent at once.

Could you please apply the following patch (against 1.2.17) and check that it fixes your problem (simply do “patch -p1” on the mail) ?

diff --git a/haproxy.c b/haproxy.c
index 8e57700..357a37a 100644
--- a/haproxy.c
+++ b/haproxy.c
@@ -5589,7 +5589,7 @@ int process_srv(struct session *t) {
     else if (s == SV_STCONN) { /* connection in progress */
        if (c == CL_STCLOSE || c == CL_STSHUTW ||
            (c == CL_STSHUTR &&
-            (t->req->l == 0 || t->proxy->options & PR_O_ABRT_CLOSE))) { /* give up */
+            ((t->req->l == 0 && t->res_sw == RES_SILENT) || t->proxy->options & PR_O_ABRT_CLOSE))) { /* give up */
            if (t->srv)

Original problem is described below…

I’m trying to use haproxy to load balance three spamassassin spamd servers. spamd uses a plain text TCP protocol so in theory it should be simple, but I’m getting intermittent connection problems. Here’s my config:

        log local0 debug
        maxconn 100
        ulimit-n 512
        uid 999
        gid 999
        pidfile /var/run/

listen spamd
        mode tcp
        option tcplog
        log global
        balance roundrobin
        clitimeout 150000
        srvtimeout 150000
        contimeout 30000
        server corona weight 5
        server curacao  weight 5
        server islay  weight 6

The problem is that sometimes the client drops the connection immediately with the client (in my case my MTA, Exim) saying:

2007-04-28 23:10:32 1Hhw3k-0000xN-G2 spam acl condition: cannot parse spamd output
2007-04-28 23:10:32 1Hhw3k-0000xN-G2 SA: Action: scanned but message isn't spam: score=0.7 required=5.0 (scanned in 0/0 secs | Message-Id: From  ( []) for
2007-04-28 23:10:32 1Hhw3k-0000xN-G2 <= ( [] P=esmtp S=2322
2007-04-28 23:10:33 1Hhw3k-0000xN-G2 =>  R=dnslookup T=remote_smtp []
2007-04-28 23:10:33 1Hhw3k-0000xN-G2 Completed

at these times, haproxy’s log will report:

Apr 28 23:10:32 localhost haproxy[22910]: [28/Apr/2007:23:10:32] spamd islay 0/-1/7 0 CC 0/0/0 0/0
Apr 28 23:10:32 localhost haproxy[22910]: [28/Apr/2007:23:10:32] spamd corona 0/0/236 2285 -- 0/0/0 0/0

The “CC” means that the client dropped the connection before a connection to a backend server was made. That’s the first connection in Exim’s spam acl. The second connection from SA-Exim was successful.

(at the moment Exim on is doing both spam acl connection to spamd and then an SA-Exim one as well, so two connections per email accepted. This is just a transitional thing while I move away from SA-Exim and isn’t a long-term plan.)

It’s not always the spamd islay that shows this error, and the problem doesn’t happen every time – both curacao and islay have successful and problem connections. Only corona is always successful. I don’t know why.

Also when this happens, although Exim drops its spamd connection immediately after sending data, haproxy does pass the connection through to a backend spamd which does process it as normal:

Apr 28 23:10:32 admin spamd[11394]: spamd: connection from [] at port 33761
Apr 28 23:10:32 admin spamd[11394]: spamd: checking message  aka  for Debian-exim:102
Apr 28 23:10:33 admin spamd[11394]: spamd: clean message (0.8/5.0) for Debian-exim:102 in 0.7 seconds, 1668 bytes.
Apr 28 23:10:33 admin spamd[11394]: spamd: result: . 0 - AWL,NO_REAL_NAME,PORN_URL_SEX,SPF_PASS scantime=0.7,size=1668,user=Debian-exim,uid=102,required_score=5.0,rhost=,raddr=,rport=33761,mid=,rmid=,autolearn=no

haproxy doesn’t have a support mailing list, it only has an IRC channel which I am reluctant to bring this up in. I mailed the author and he doesn’t know why it should be behaving like this either. Anyone else have any ideas?

Failing that, anyone know a decent, open source software load balancing solution for generic TCP? Bonus if I can direct to least busy backend, or if I can specify a limit of connections per server.

Why doesn’t script work anymore?

      1. Update…

Uwe’s post about script reminded me that script just doesn’t seem to work for me for some reason anymore on Debian (both sarge and etch). I also see it sometimes on work’s RHEL-alike machines, but not all of them!

Here’s what happens:

$ script
Script started, file is typescript
bash: No such file or directory
Script done, file is typescript

What’s going on there? I’m sure it’s something simple. This has been happening for ages (more than a year) but I always get distracted when a simple search doesn’t turn up an answer to it. Any ideas?

Update… ^

huggie suggested I use strace to see what was going on. I have tried this before but I should have paid more attention, and done it again anyway, because now I can sort of see what is going on:

setsid() = 31937
ioctl(5, TIOCSCTTY) = 0
close(4) = 0
close(3) = 0
dup2(5, 0) = 0
dup2(5, 1) = 1
dup2(5, 2) = 2
close(5) = 0
execve("bash", ["bash", "-i"], [/* 22 vars */]) = -1 ENOENT (No such file or directory)

It is literally calling “bash” with no path. If I cd to /bin and do it then it works. Also this works:

$ SHELL="/bin/bash" script
Script started, file is typescript


$ echo $SHELL

I still don’t know what exactly is going on, but at least I have a workaround now.