The malloc error means that the swupd_syncd process tried to allocate some virtual memory (2453504 bytes, in this case) and there wasn't enough available.
This isn't because you don't have enough RAM. And it's probably not because you don't have enough disk space for VM. This is probably happening because swupd_syncd process is a 32-bit process. 32-bit processes can have up to 4GB of virtual memory space. For some reason, swupd_syncd is eating all of it up and running out.
There are two reasons I can think of for why this may be happening:
- swupd_sync in 10.5 was never designed to host updates for 3 different OS's, so it isn't as efficient as it could be with memory allocation
- swupd_sync in 10.5 has a memory leak, which only becomes a problem when we add Lion updates to the mix
Either way, it looks like we're stuck trying to work around this problem. I tried configuring swupd to sync only Lion updates (no 10.5 or 10.6 updates) by removing references to them in 'mirror-config-1.plist'. So far, VM for swupd_syncd has topped out at 2.34GB, instead of climbing well past 3GB before crashing with the malloc error. But all this does is confirm that, for whateever reason, swupd_syncd requires too much memory for the Lion updates. When I add either the Leopard or Snow Leopard updates into the mix, VM grows too high and swupd_syncd crashes when I get the malloc error.
For the record, the Lion updates have not actually started downloading yet. But I'm not interested in having only 10.7 updates on my 10.5 server. So I've stopped this experiment and reverted to just 10.5 an d10.6 updates.
Once I get the 10.5 and 10.6 updates synced, I will try adding the 10.7 updates to the mix. Perhaps it will require less VM, although I doubt it.