Finder chokes on too many pixels


Sadly, the Finder experiences a segfault when the total size of all desktops seems to exceed around ten million pixels.

I ran into this when I put a third display on my machine, each running at 1600x1200; the Finder died almost immediately, and continued to generate segfaults upon further attempts to run it.

I played around with it for a while (it's amazing how usable the machine still is, even without the Finder), and determined that it really is the total screen real estate which trips it up. The Finder is trying to scale the desktop images to all displays, and exceeds a preallocated buffer somewhere.

This is mostly bothersome because it reveals some very bad coding practices:

Firstly, fixed, preallocated buffers are incredibly bad form. They waste space needlessly; they open endless doors to security problems; and, as evidenced by this situation, what some developer thinks at one point is "enough for anyone" frequently turns out to not be.

More generally, the Finder shouldn't be what's responsible for the desktop pattern. What if I don't want to run the Finder, or want to run some third-party Finder replacement? What about the philosophy of modularity, and separating functions into easily updateable, replaceable, configurable parts?

And, only tangentially related to this problem, I'll ask again: what's with this only-one-desktop-pattern-mirrored-on-every-display nonsense?

We all know that the Finder is the hackiest part of this system, clearly thrown together at the last minute. But this is truly alarming.

That <em>is</em> alarming, and it <em>does</em> seem odd that the Finder is responsible for the background picture. Hmm. OTOH, the Finder is the only app to use the desktop, so I guess that's why it gets the responsibility.

Since the Finder is the main point of entry to the computer, I do hope Apple puts more effort into constant improvements. I'm sure they have their hands full.

The first thing they need to do is make the Finder a Cocoa Application. The multiple monitors code was obviously rushed and should improve.

Just my opinion on the matter.
I've got two monitors (heads). One is the stock with 6megs of video ram (ati), the other is a Rage Orion card with 16 megs of video ram. Classic crashes with I load it up. It loads all my extentions, and then, right before loading my menus and displaying my hard disk icons, it freezes. It loads in this 640x480 (or so) window. If I turn off extentions, it stays at that 99% point, and then classic disapears. Only top, and of course opt-apple-esc show the program as running.

My resolutions:
rage orion - 1600x1200
stock on-board video - 1152x768, I think

Could it be crashing because of the high res? Thanks!

Beige G3 rev. A 266
128 megs of ram
atapi cdrom
2 displays
firewire/usb card
ethernet card (on-board one died)
Have you actually tried running any classic applications? When you load classic, it is not supposed to show it's menus or drive icons. You will get the classic menu bar if you open a classic application, but not otherwise. And the opening in the small window and then disappearing is exactly how it is supposed to work. Since Top and force quit show it running, I would say it is working fine. Try opening a classic application and see what happens.

If it actually freezes (rater than just disappearing) when you don't turn off the extensions, then you probably have an extension that is not OS X compatible. Try selecting just the OS 9.1 extensions in extension manager.
I wish I had read your post earlier. I was trouble-shooting the classic enviroment, and I thought that maby my naming of the classic volume, "os9" was messing things up, so I renamed it "Macintosh HD". This really screwed things up. Now, starting classic doesn't even begin to boot os9. My CPU useage jumps to arround 99%, and classic doesn't start. Its just this white window. I'm guessing it can't find the os 9 system or something. Anyway, I tried to rename the volume to 'os9', so I could try what you suggested (what you suggested sounds right). Guess what? The system can't rename the volume because "it can't be found" or something. I'm not at my mac at the moment (crappy win nt at school), but I think thats the error. The console reveals "autoremount fail" or something like that when I try and eject the cdrom I had mounted. I guess renaming was a bad idea.... (logging in as root doesn't help).
Any thoughts on renaming the volume to 'os9' or getting os9 to work off a volume that is now named 'Macintosh HD'? Thanks for your replies.
Well, I rebooted (6 days uptime down the drain), and I was able to rename the disk back to 'os9'. You were right, classic really was working. I tweaked the extensions a bit, and Now I can run starcraft, netscape, Corel Word Perfect, and almost anything I want. I wish there were a way to sort of use the old finder. Like MOL (Mac on Linux), for ydl and ppclinux.

Oh, and is there a way to:
1)Use my firewire burner through classic?
2)Use my video input (personality card, g3 rev. a)
3)Use my Logitech MouseWare control panel with my logitech usb mouse?

I don't really care too much - I can allways get this by booting into os9. And I suspect that firewire and toast will soon be fully supported in osx. As well as all my mouse things. And, eventually, I will break down and get a usb-video deal or maybe something firewire.

Thanks for all your help, its wonderfull to see those 2d buttons and outline-dragg windows agian! (not to mention photoshoop...)