Greg
Greg's diary
April 2003
Translate this page
Select day in April 2003:
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Select month:
2002 Sep Oct Nov Dec
2003 Jan Feb Mar Apr
2003 May Jun Jul Aug
Today's diary entry
Diary index
About this diary
Previous month
Next month
Greg's home page
Greg's photos
Network link stats
Greg's other links
Copyright information
    
Groogle

Tuesday, 1 April 2003 Echunga
Top of page
next day
last day

I had hoped to get the final copy for the book out today, but got sidetracked with format issues, in particular placing text for the printers outside the print area. In the process was able to use to good advantage a detail that I read yesterday in UNIX Text Processing (the hardcopy version printed decades ago): in many spacing requests and escapes, | means "absolute", so I could write things like:

.sp |40p

to move to 40 points from the top of the page. That greatly simplified the chapter heading macros. It's amazing all the things you can still learn after all that time. As a result, though, I didn't have time to go through the entire manuscript before evening.

Call from Pia Smith of Linux Australia in the evening. It looks like we might end up cooperating a lot more.


Wednesday, 2 April 2003 Echunga
Top of page
previous day
next day
last day

And on to the final day of the book! Or so I thought. Had a few minor layout problems in the foreword, and managed to fix them. Then a final pass through the book looking for bad page breaks, and reformatted the whole book. I had got about half way through the final draft when I was interrupted for an hour for a teleconference. After that, continued, but somehow things went to hell. Page breaks that had looked fine before wandered all over the place. By 7:30 pm, I was still only two thirds of the way through the book, and gave up, more than a little frustrated.


Thursday, 3 April 2003 Echunga
Top of page
previous day
next day
last day

Up early this morning and dropped everything else to be able to finish off the book. Got through in another couple of hours. I have no idea what caused the pagination to change so dramatically, but I no longer had time to check why. Put the final version on the web site in the early afternoon, and then returned to other issues, such as why I couldn't print to Samba. Finally got some help from Tridge, who pointed out that my configuration was just what the documentation asked for, but not what I wanted. In /usr/local/etc/smb.conf.default it says:

# NOTE: If you have a BSD-style print system there is no need to
# specifically define each individual printer
[printers]
   comment = All Printers
   path = /var/spool/samba
   browseable = no
# Set public = yes to allow user 'guest account' to print
   guest ok = no
   writeable = no
   printable = yes

This just plain doesn't work. It accepts the print job and then deletes it. The problem is that there is no print command. To actually get it printed, you need to add:

print command = lpr -r -P'%p' '%s'

Added that to the book, along with another typo that Sue Blake caught three minutes after I put the "final" draft on the web site, and updated the web site again. What a day.


Friday, 4 April 2003 Echunga
Top of page
previous day
next day
last day

Up first thing this morning and found a message from Andy Oram: the URL I had given him for the book had a typo, and so he couldn't find it. Damn. Another day lost. It's sometimes a nuisance working with people on the other side of the world. Finally wrote my Dæmon's Advocate column. That's the latest I've ever been, the first time it hasn't been ready by the end of the month. Unfortunately, it didn't make much difference. We're all behind time, and a day later the issue still hadn't been published.

Gradually started tidying up other things. I have had a lot of spam to my majordomo address, so I had been intending to switch to mailman. That was a little silly: I block http at the firewall, so it's really not much use. Set up a majordomo mailing list vinum-devel@lemis.com, obviously for people interested in developing Vinum, and sent out messages about it. The response was pretty much instantaneous: the first member signed up within minutes. It'll be interesting to see how that works out.

Apart from that, did various tidy-ups of things that have been left behind while doing the book. It'll be interesting to see how things pan out in the next few months.


Saturday, 5 April 2003 Echunga
Top of page
previous day
next day
last day

Ah, what a relief to have the book out of the way! Got my confirmation from Andy this morning that he had got hold of it, and that it looked OK.

Spent some time looking at the Vinum mailing list, which had accumulated over 40 subscribers overnight, a surprising number from smaller countries. Sent out a message, but didn't see much response.

Out riding in Kuitpo Forest this afternoon. Things went very well; Darah was surprisingly good, and even walked into the float without being led. Unfortunately, Lady is still not ready for longer rides, so it only lasted about an hour. Hopefully I will now have time to do this more often.


Sunday, 6 April 2003 Echunga
Top of page
previous day
next day
last day

More catching up with odds and ends today. Things are looking a lot better, and I managed to start working on preparing to install Vinum on NetBSD, which didn't go as smoothly as I would have liked. Like FreeBSD, the NetBSD build process is getting too complicated, though admittedly it didn't help that my cvs update failed and I didn't notice.

Out riding again in the afternoon. It's great to have a bit of spare time.


Monday, 7 April 2003 Echunga
Top of page
previous day
next day
last day

Finally got back to some programming. Spent more time working on getting a NetBSD kernel built, which proved non-trivial: both smbfs and lfs died when various debug options were compiled. Then took a look at the Vinum code that I had received for NetBSD, but it looks like a pretty early attempt, so shelved that and went back to looking at the undelete program that I had pulled down from the OpenDOS project.

I've heard from Eric Auer, the author of this particular version of undelete (there's also one supplied by, but not written by, Microsoft), that he wrote it for FreeDOS, not OpenDOS. Still, I got it from OpenDOS.

It had compiled nicely, but looking at the usage, it was so DOS-oriented that it was almost useless. My intention was to use it to recover the photos that I accidentally deleted last Sunday, and for that it had to work on a file image. Instead, it wanted to work on the current file system, which on UNIX is almost never a Microsoft file system. Spent some time tidying that up, but didn't finish.

Intrusion attempts are getting worse all the time. I have now completely blocked http traffic into my network, but looking at sat-gw (a Linux box because of the binary-only satellite receiver driver), I see:

Chain FORWARD (policy ACCEPT 60 packets, 3457 bytes)
 pkts bytes target     prot opt in     out     source               destination
1121K   56M DROP       tcp  --  sm200d *       0.0.0.0/0            0.0.0.0/0          tcp dpt:80
$ uptime
  7:29pm  up 5 days,  3:48,  3 users,  load average: 0.00, 0.00, 0.00

In other words, 56 MB of connection attempts (1.12 million of them) in a little over 5 days, or 220,000 a day, 2.5 a second. It's time to require people to take broken systems off the Net.


Tuesday, 8 April 2003 Echunga
Top of page
previous day
next day
last day

Got a new set of sources for the NetBSD port of Vinum in the mail today, but they still looked a little strange. Spent most of the day playing with them and getting things to the point where I could build a kernel and at least talk to the kernel module with vinum(8). Quite a satisfactory day. If I can carry on like this, we should have things up and working pretty soon.


Wednesday, 9 April 2003 Echunga
Top of page
previous day
next day
last day

A mail message from O'Reilly this morning: problems with the "final draft" I sent them, mainly things I hadn't been told about, but also some odds and ends that I hadn't expected. It seems that it's standard practice to have a "this page intentionally left completely blank" page at the end of a chapter with an odd number of pages. I had thought it would make sense to have at least a heading and a page number, but they wanted everything removed. I wonder how that came to be.

After my previous experience, set down to fix the manuscript immediately, breaking my normal daily routine. A good thing, too. Somehow there are always unexpected occurrences. I need to review my macro set completely. It's been growing since late 1995, and it contains a number of kludges that need replacement. By the evening, partially due to other interruptions, I still wasn't finished. Frustrating day.


Thursday, 10 April 2003 Echunga
Top of page
previous day
next day
last day

Woke up at 4 am worrying about the work I still had to do on the book, so got up, bleary-eyed, and messed around with the PostScript until things looked right and would at least print on my printer. That's not a thing I like to do--I'd much rather have something repeatable--but under the circumstances I didn't have much choice.

Back to bed and up late, to find a message from Claire saying that there were further (minor) problems. At least she's responsive. Fixed those problems, then in to town to another ADUUG lunch, spent mainly talking to David Newall about PostScript. David hacks in PostScript much more than I do: he has even written a billing system in PostScript. We didn't come to a good conclusion about font handling, however.

After that to the RAA to buy some maps for our forthcoming journey to Eastern Victoria. Then back home to copy some CDs to tape for the journey. A lot of the journey will not have adequate radio coverage.


Friday, 11 April 2003 Echunga –> Ballarat
Top of page
previous day
next day
last day

Spent most of the morning preparing for our journey to Victoria. Got yet another message from Claire saying that they still had problems with the book, related to the way I had coalesced the PostScript. Didn't have any time to do much about it, so sent off the three individual components (table of contents, chapters and appendix). No feedback (not surprising, since it was 10 pm in Boston), so we'll have to wait until Wednesday to see if that worked.

Off a little late at 12:30, and got to Nhill without problems, so off the Western Highway through the Little Desert National Park to look for Mt. Aragiles and the Grampians. Found the former about 30 minutes before sunset, so decided to go on to Hall's Gap, which was further than I remembered. Didn't get there until it was completely dark, and raining to boot. Headed on to Ararat, where we got caught in a surprisingly violent rainstorm, slowing us down to 35 km/h in places. Finally got to Ballarat at about 8:30 pm, and had dinner in a little Italian place with little to recommend it.


Saturday, 12 April 2003 Ballarat –> Stratford Images for 12 April 2003
Top of page
previous day
next day
last day

Up after a somewhat restless night and off to look for breakfast. The place that was recommended had international hotel prices, so off to look for another, where we discovered that there were none, and that there were no services at all on the freeway to Melbourne. We didn't see any petrol stations between the middle of Ballarat and the outskirts of Melbourne. What clever planning!

In Melbourne, found our way at a snail's pace to Keon St, Thornbury, where we met Jack Flett, one of my father's oldest friends:


https://lemis.nyc3.digitaloceanspaces.com/grog/Photos/20030412/big/Jack-Flett-and-family-2.jpeg
Image title: Jack Flett and family 2          Dimensions:          2048 x 1536, 1124 kB
Make a single page with this image Hide this image
Make this image a thumbnail Make thumbnails of all images on this page
Make this image small again Display small version of all images on this page
All images taken on Saturday, 12 April 2003, thumbnails          All images taken on Saturday, 12 April 2003, small
Diary entry for Saturday, 12 April 2003 Complete exposure details

 

He's still living in the house where his aunts used to live when Dad knew him, round 1930. Managed to persuade him to come to the party in Stratford tonight, then off down to the Merri Creek, where Dad once sailed his boats. The first sight wasn't very attractive:


https://lemis.nyc3.digitaloceanspaces.com/grog/Photos/20030412/big/Merri-Dim-Sims.jpeg
Image title: Merri Dim Sims          Dimensions:          2048 x 1536, 1316 kB
Make a single page with this image Hide this image
Make this image a thumbnail Make thumbnails of all images on this page
Make this image small again Display small version of all images on this page
All images taken on Saturday, 12 April 2003, thumbnails          All images taken on Saturday, 12 April 2003, small
Diary entry for Saturday, 12 April 2003 Complete exposure details

 

In fact, though, it didn't look too bad once we got past it:


https://lemis.nyc3.digitaloceanspaces.com/grog/Photos/20030412/big/Merri-Creek-3.jpeg
Image title: Merri Creek 3          Dimensions:          1536 x 2048, 2125 kB
Make a single page with this image Hide this image
Make this image a thumbnail Make thumbnails of all images on this page
Make this image small again Display small version of all images on this page
All images taken on Saturday, 12 April 2003, thumbnails          All images taken on Saturday, 12 April 2003, small
Diary entry for Saturday, 12 April 2003 Complete exposure details

 

After that, off to find our way to Stratford on Avon, going out through Box Hill (where we had some surprisingly good food at a Chinese food court) and Ferntree Gully. On the way, stopped off in Heather Grove in Nunawading, where I spent the first years of my life at number 22. In contrast to my father's old house in Thornbury, this one was no longer there.

From Ferntree Gully went via Emerald and Cockatoo to the Princes Highway, and then on to Stratford, arriving in good time. Off to the Court Theatre, which was playing a rather aptly named play, "Life after George". Jack Flett and his daughter Robyn arrived just on time, and I was able to watch Dad's face when he saw Jack again. As near as we can tell it, it must have been 68 years since they last saw each other.

It's obviously not that long since I last saw any friend, but I do take the record for the youngest age: My second cousin Gary Reeves showed up. I hadn't seen him since I was 10 years old.

The evening was pleasant, and Dad finally got to recite "Clancy of the Overflow" without me shouting him down. Before that a number of speeches, including one which I had to pull off the cuff. Here's a blow-by-blow description.


Sunday, 13 April 2003 Stratford –> Briagalong –> Omeo Images for 13 April 2003
Top of page
previous day
next day
last day

Found ourselves at a bit of a loose end in the morning, but we were able to get a cooked breakfast at the motel, for less than half what it would have cost yesterday. After that spent some time arranging photos, then off to the Kline's place on the other side of Briagalong for a barbecue with most of the people who had been there last night.

Our expectations of when the barbecue would end were pretty accurate, and we were some of the last when we left at 3:30 pm. Off to Omeo, where we got just after dark at about 6 pm, and discovered a number of less pleasant facts:

As a result, decided to get up at the crack of dawn and head North through the High Country, somewhat disillusioned about the idea of touring the country.


Monday, 14 April 2003 Omeo –> Bendigo –> Echunga Images for 14 April 2003
Top of page
previous day
next day
last day

Up early and really did manage to leave at 6:30 am. The Alpine Highway is quite nice, and it really does have some similarities with the Alps (and, not surprisingly, the area round Cooma where we drove in December 2000). Got caught in some dense fog round Mt. Hotham, but finally found our way down to Bright, where it was just turning 9 am. Had some breakfast at a bakery, and then headed on to Bendigo, where we arrived just before midday and tried to get the car looked at at the local Mitsubishi dealers. Unfortunately, they weren't interested in even looking at the car, and said they may get a chance to look at it late in the afternoon.

The URL I wrote at the time was http://www.paulturpie.com/. That URL no longer resolves. I don't know whether this is the same company which now services Mitsubishi in Bendigo.

Gave that up as a bad job and decided that we could probably make it back home before dark, so did that, arriving home at 6 pm, exactly 12 hours and roughly 1000 km after leaving. On the way called Mount Barker Mitsubishi, who were even less help; they didn't want to look at it until next week. What a concept of service.


Tuesday, 15 April 2003 Echunga
Top of page
previous day
next day
last day

I hate coming home after being away. It takes so long to catch up with mail. When I got home last night, I had 3600 messages waiting. This morning there were 4400, and it took me until lunch time just to get back to where I was last night. By the evening, I still had well over 1000.

Spam is getting really bad lately. I wonder how long it will be before some legislation is put in place. It can't continue like this. Put back in place my rejection of systems without reverse lookup, but that's only a partial solution. I suppose I'm going to have to get people to authenticate.

Apart from fighting mail, spent some time putting up the photos of the weekend, which make a total of about 50 MB. Took several hours to download them to the web site.


Wednesday, 16 April 2003 Echunga
Top of page
previous day
next day
last day

Finally caught up on my mail, and spent the rest of the day doing administrative work. The hope that I'd have more time after finishing the book hasn't fulfilled itself to the extent that I now have nothing to do.

Also spent some time looking at authentication-style spam protection. There's the port /usr/ports/mail/tmda, but the installation instructions are terrible. Spent a bit playing around with that, and stopped when I got:

<norm@lemis.com>: Command died with status 1: "/usr/local/bin/python".  Command
    output:   File "<stdin>", line 1     From grog@lemis.com  Wed Apr 16
    17:16:39 2003             ^ SyntaxError: invalid syntax

<norm@lemis.com>: cannot append message to destination file
    /usr/local/bin/tmda-filter: cannot open file: Permission denied

Why can't they write programs in C?

Jim Couch fixed the problem with the headlights. As I had guessed, it was the headlight relay. If I had known where it was (inside the under-bonnet fusebox), I could have bought one in Bendigo on Monday. You don't even need tools to replace it.

Called up Mitsubishi Motors to complain about the treatment we had had on Monday. To my astonishment, they weren't even prepared to listen to me. They wanted me to sort things out with the dealers first. The fact that one is in Bendigo doesn't seem to make any difference. Called up the RAA, who were a little more sympathetic, but there's not much they can do. The bottom line seems to be: don't buy Mitsubishi.


Thursday, 17 April 2003 Echunga
Top of page
previous day
next day
last day

Slow day. The immediately urgent stuff has stopped, and though I still have a number of less urgent things to do, I can't decide which to choose. As a result, didn't do too much.

My spam filtering stopped working again. Some spammers have decided to add an alias for me to a mailing list with ALL CAPS, so modified my .procmailrc to add a rule to catch it. It didn't work. Spent over an hour looking at that, and discovered that the same rules worked fine if I passed the message directly through procmail. But if I let postfix deliver it, I could see it start procmail, but the message ended up not being filtered. With the help of ktrace I discovered something interesting:

 45345 sh       NAMI  "/usr/local/bin/procmail"
 45345 sh       NAMI  "/usr/libexec/ld-elf.so.1"
 45307 local    RET   select 1
 45307 local    CALL  read(0x10,0x8096008,0x1000)
 45307 local    GIO   fd 16 read 62 bytes
       "procmail: Error while writing to "/home/grog/Mail/caughtspam"
       "
 45307 local    RET   read 62/0x3e

local is the postfix local delivery agent. It seems that it ignores procmail's error messages; later it just writes:

 45307 local    CALL  sendto(0x7,0xbfbfe750,0x9e,0,0,0)
 45307 local    GIO   fd 7 wrote 158 bytes
       "<22>Apr 17 15:13:18 postfix/local[45307]: 2238B51A68: to=<grog@lemis.com>, relay=local, delay=37, status=sent \
        ("| exec /usr/local/bin/procmail -t || exit 75")"
 45307 local    RET   sendto 158/0x9e

But why is procmail returning an error? It didn't when I asked it directly, and for some reason (probably security considerations) I don't see the procmail system calls. I tried telling procmail to write to stderr, but it ignored it, just replying to the pipe output descriptor.

Finally found that the file had reached postfix's maximum file size. My best bet is that postfix has reset the resource limits on the file size and handed them to procmail, which doesn't give a very useful error message. That doesn't matter overly, because postfix ignores it anyway. This is probably also the cause of the errors I had from spamassassin on 30 March. It would also explain why using the daemon worked when direct invocation didn't. sigh. There's still a lot of work to be done fixing broken error handling.


Friday, 18 April 2003 Echunga
Top of page
previous day
next day
last day

Another slow day. I had a number of competing ideas about how to spend my time, none of which really caught on:

Started upgrading the ports on battunga. Somehow it's touch and go whether port upgrades work at all. People seem to have forgotten that one of the aims of the FreeBSD project is to keep machines running as long as possible. battunga has now been up for 219 days, not very long, and it was a relatively fresh install at the time, but now half the ports have rotted to the point that portupgrade can't recognize them. I should take some time to think of a better way. The upgrade was still going by evening.

Had some problems with Vinum on NetBSD, including differences between readline and libedit, during which I installed readline (which isn't in the base NetBSD system) and discovered that NetBSD's ldconfig only works for a.out formats. You need to set the LD_LIBRARY_PATH environment variable to find user libraries, notably those in /usr/pkg/lib. Got as far as attempting to create a drive, which panicked the system. I don't have serial debug working yet, so put that off for a while.

Also looked at the sources of xterm, which included an undocumented (or at least, as far as I could find) #ifdef READLINE. The code looks less bad than everybody says it is, but I didn't get much further with that either.


Saturday, 19 April 2003 Echunga
Top of page
previous day
next day
last day

It's been a funny autumn. Normally we spray the paddocks for broadleaf weeds when the first rains have come and the weeds are starting to grow again. That's usually early May. This year we had some really heavy rains in February, and the paddocks are nice and green already. The only problem has been to find a good day for spraying: it should be dry, and preferably warm and windstill. Today was such a day, so went out to put the spray unit on the tractor, only to find that, once again, the battery was flat, and we had to jump start it. The spray unit belongs to Greg Edmonds, and in past years the book had had a few jets missing at one end. I was pleased to note that Greg has since replaced them. I was less pleased when I then managed to break one off again by banging the book against a fence post. Apart from that, managed to get most of the paddocks sprayed. We can't do them all at once, because we need somewhere to put the horses, and they're not allowed back for a week.

I wrote “book” twice above. I suspect that this is a typo, and I meant to write “boom”, but why twice?

In the afternoon out for a ride, but somehow I wasn't feeling much in the mood, and Lady (Yvonne's horse) wasn't either, so we didn't stay out long. Spent the rest of the day reading and watching TV, not a thing I do very often.


Sunday, 20 April 2003 Echunga
Top of page
previous day
next day
last day

I didn't exactly do much yesterday or the day before, but today I did almost nothing. I didn't even read my mail, which normally keeps me busy an hour or two each day. It's good to have a rest. I should do it more often.


Monday, 21 April 2003 Echunga
Top of page
previous day
next day
last day

Had intended to go riding today, but somehow managed to pull a muscle in my neck, and found my movements somewhat restricted. Instead went back to the question of Vinum on NetBSD, and made good progress. In the process, came across a day one bug in Vinum:

    strcpy("unknown", drive->devicename);           /* and make the name ``unknown'' */

That can't work, of course: the parameters are the wrong way round. It's surprising that FreeBSD didn't fail. NetBSD did.

After that, to make up for my bug, found something very strange in NetBSD which also panicked the machine. The sync code issues I/O requests with incompletely initialized buffer headers:

(gdb) p *bp
$1 = {
  b_hash = {
    le_next = 0xc0a7c690,
    le_prev = 0xc0a7cfe0
  },
  b_vnbufs = {
    le_next = 0xdeadbeef,
    le_prev = 0xdeadbeef
  },
  b_freelist = {
    tqe_next = 0xdeadbeef,
    tqe_prev = 0xdeadbeef
  },
  b_actq = {
    tqe_next = 0xdeadbeef,
    tqe_prev = 0xdeadbeef
  },
  b_proc = 0xdeadbeef,
  b_flags = 84,
  b_interlock = {
    lock_data = 0
  },
  b_error = -559038737,
  b_bufsize = -559038737,
  b_bcount = 8192,
  b_resid = 8192,
  b_dev = 6400,
  b_un = {
    b_addr = 0xc29ab000 "\037\213\b\bs\222£>"
  },
  b_saveaddr = 0xdeadbeef,
  b_lblkno = 0,
  b_blkno = 1920,
  b_rawblkno = -2401053088876216593,
  b_iodone = 0xc036cefc <uvm_aio_biodone1>,
  b_vp = 0xcb54e3c0,
  b_private = 0xc0a7ca50,
  b_dcookie = -2401053088876216593,
  b_dep = {
    lh_first = 0x0
  }
}

In particular, b_bufsize was uninitialized, and in vinumstart I have:

#5  0xc01a10bf in vinumstart (bp=0xc0a7c0f0, reviveok=0) at ../../../../dev/vinum/vinumrequest.c:274
274                     bp->b_data = Malloc(bp->b_bufsize);

I could also use b_bcount, but if you're copying a buffer, the b_bufsize value should be the correct value.


Tuesday, 22 April 2003 Echunga
Top of page
previous day
next day
last day

More work on Vinum on NetBSD today. It's surprising how many odds and ends you find. For some reason fsck wouldn't work correctly on Vinum volumes. I could create a file system and mount it, but fsck couldn't find the superblock. Neither could mount once fsck had got its fingers on it: something had changed all the reads to writes. Spent some time looking at that, but didn't get it finished. Also discovered that bre() was creating 0 length request elements, which were benign. It's amazing what bugs show up in code which is supposed to be mature.


Wednesday, 23 April 2003 Echunga
Top of page
previous day
next day
last day

More work on Vinum today. Spent the whole day trying to debug one 5 line function (vinum_rqinfo, in vinummemory.c), which I hadn't changed. By the evening I still hadn't worked out what was going on, though it looked like an optimizer problem, but in the process learnt a lot about what things the optimizer and even the base compiler do. In particular, it doesn't seem to emit code which divides by constants any more. Instead, it replaces it with a multiplication by the reciprocal of the constant. Spent a long time trying to understand this line:

    int lastent = rqip - rqinfo;    /* entry number of current entry */

rqip and rqinfo are both of type struct rqinfo, so the result of the subtraction is scaled by the size of the struct. gcc generates the following code:

  5fe:   a1 00 00 00 00          mov    0x0,%eax
  603:   2d 00 00 00 00          sub    $0x0,%eax
  608:   69 c0 cf 46 7d 67       imul   $0x677d46cf,%eax,%eax

That was confusing enough, but when I looked at the value of lastent, it was wrong. The register had already been reused, and it contained something else. gdb should at least be able to find out when the variables are no longer valid. Spent some time working around that problem before moving on an instruction or two:

    bcopy(&rqinfo[ent], rq, sizeof(struct rqinfo));

That still didn't seem to work. The values in rqinfo[ent] were correct, but the result at the address specified in rq was not. To add to the confusion, that was the last reference to rq, so just dereferencing it in the following line gave incorrect values (specifically, it was in the edi register, which got incremented during the unrolled transfer with movsl, so it was pointing beyond the end of the struct. Rebuilt a kernel without optimization in this file (in itself a problem; I wasn't able to find a way to turn it off in the Makefile), and left it as a bad job. What a day.


Thursday, 24 April 2003 Echunga
Top of page
previous day
next day
last day

Up early this morning and carried on trying to find out what was wrong with vinum_rqinfo(). Everything pointed to the optimizer: the function compiled without optimization worked with no problems. Finished the work I had been doing when the problem occurred, then went back to find out where the optimization was broken. Got back to the original form of the function, and it still worked. I'm baffled. This must be something dependent on the phase of the moon. Is it significant that it's the end of Passover?

Spent most of the afternoon retrofitting the changes into the Vinum master sources. That was not too difficult, though the fact that I was in a state of flux in the sources already didn't exactly help.


Friday, 25 April 2003 Echunga
Top of page
previous day
next day
last day

More work on Vinum today, and finally finished merging the NetBSD changes into the master sources. In the process, discovered that the NetBSD major and minor device numbering is handled differently from FreeBSD. Both use a 32 bit word for major and minor number, but FreeBSD has an 8 bit major number in the third byte, and NetBSD has a 12 bit major number starting 4 bits earlier, so the masks for the minor number are 0xffff00ff for FreeBSD and 0xfff000ff for NetBSD. In addition, the NetBSD minor macro removes the hole in the middle, so minor numbers go without interruption from 0x0 to 0xfffff, while FreeBSD minor numbers are all numbers between 0x0 and 0xffff00ff that have the third byte set to 0.

Rather than fixing that to work with Vinum the way it was, decided on a long-overdue rewrite of the minor number decoding. Originally I had a grandiose idea where a plex minor number would indicate the volume to which it belonged, and a subdisk minor number indicated both plex and volume. That proved to be of no use whatsoever, and I started retiring it a couple of years ago. It also restricted the number of volumes to 256, which proved to be too little for some people. As a result, rewrote the code so that the high-order two bits of the minor number define what kind of object it is. 0 is a volume, 1 a plex, and both 2 and 3 are subdisks. This gives 256 K volumes and plexes for NetBSD, 4 M for FreeBSD, and double the number of subdisks in each case. That should keep people happy. Strangely, the rewrite worked with little difficulty. A far cry from the problems I had on Wednesday.


Saturday, 26 April 2003 Echunga
Top of page
previous day
next day
last day

Now that the NetBSD version of Vinum is running reasonably, turned my attention to getting the master sources in sync with the FreeBSD source tree. That was well worth the effort: I had added a number of things which hadn't made it to the FreeBSD source tree. In addition, it didn't take as long. The only annoying thing is that it's still impossible to build a world on zaphod (FreeBSD 5-CURRENT); for some reason it always hangs, and I have to continue from where it failed with -DNOCLEAN.

In the afternoon out riding in the Peter Creek Road section of Kuitpo Forest. They seem to have remodeled the tracks there, including a new 10 km walking track which is also pretty good on horseback; they've added a lot of sand. Had a lot of fun; I think we'll have to come back a couple of times.


Sunday, 27 April 2003 Echunga
Top of page
previous day
next day
last day

For the last few days, I've tried a different way of attacking my mail. Instead of spending the first couple of hours every day processing the 1000 or so messages that have come in overnight, I've only processed the important ones and left the rest to accumulate. The result was that this morning I had about 2800 messages to handle, which kept me busy for some time.

It's not clear that this is a bad approach. The knowledge that you have to spend a couple of hours every day reading mail can get rather oppressing, and since the messages aren't urgent, there's no reason not to batch them for a few days. The result has been that I've had more time for my work on Vinum, which was productive: usually I find there's not much time left in the day after handling the routine tasks.

The weather has been surprisingly dry for the second half of the month. Usually it's difficult to find a good time to spray the paddocks in the autumn, but we've had no rain since spraying the first half last Saturday, so did the rest today. After that took it easy and didn't do too much.


Monday, 28 April 2003 Echunga
Top of page
previous day
next day
last day

Back to work on the FreeBSD-CURRENT version of Vinum today, and finally got that working. Strangely, considering that it was already working, it was no less of an effort than getting the NetBSD version up and running. Next on the list will be getting some of the known bugs ironed out.

In the afternoon started on the FreeBSD release 4 version, which proved to give me some remarkably strange results. After a couple of hours of looking at mutilated source files, came to the conclusion that unifdef does not like any #ifdefs it finds which it can't resolve, and both versions of indent (BSD and GNU) don't understand them at all. In each case the result is so strange that I could only consider it a bug:

    if (argc == 0)                                         /* stop vinum */
#rifdef NETBSD
        /* XXX FIXME */
        fprintf(stderr, "Sorry, you can't stop this version of Vinum\n");
#else

Each time I run indent, it adds a letter r to the ifdef. This happened because I hadn't explicitly mentioned what to do with NETBSD in the Makefile.


Tuesday, 29 April 2003 Echunga
Top of page
previous day
next day
last day

Today an interview of a number of FreeBSD core team members appeared in OS News and caused quite a stir, especially when it got carried over to Slashdot, so I spent a lot of the day following up on that. In addition spent a couple of hours on the phone with various AUUG activities, which didn't leave much time to do much else.


Wednesday, 30 April 2003 Echunga
Top of page
previous day
next day
last day

Still interest from the press today. A press person in Austin TX had called me up last night just before midnight, apparently not knowing what time it was, to ask my opinion about the SCO complaint against IBM. I had looked at it before, but I hadn't really analyzed it that carefully. Spent some time doing so today, which just proved that it was even more stupid than I thought. I didn't get the document finished.

Apart from that, spent some time building kernels on zaphod. For the fun of it, installed a uniprocessor GENERIC kernel on it, just to make sure that it's the SMP code and not a dud motherboard which causes it to hang all the time. Got through several make worlds with no problems.


Do you have a comment about something I have written? This is a diary, not a “blog”, and there is deliberately no provision for directly adding comments. It's also not a vehicle for third-party content. But I welcome feedback and try to reply to all messages I receive. See the diary overview for more details. If you do send me a message relating to something I have written, please indicate whether you'd prefer me not to mention your name. Otherwise I'll assume that it's OK to do so.


Top of page Previous month Greg's home page Today's diary entry Next month Greg's photos Copyright information

Valid XHTML 1.0!

$Id: diary-apr2003.php,v 1.57 2023/04/19 03:48:27 grog Exp $