I will share my entire debugging journey in case it is helpful to other users or developers. If you just want the solution, skip to the bottom.
When my toolbar disappeared I eventually installed the same wiki (version 2011-05-25a) on three boxes and had the original broken one, a second broken one, and a third one that worked. Other than the working one being a 32-bit machine, all of them have the same Linux distribution, same version of Apache and PHP, and an identical copy of my wiki. I verified the problem existed on two Linux machines in Firefox, Chromium, Opera, Seamonkey, and Konqueror to be sure it was not the browser or my desktop environment.
The toolbar first vanished when I removed a plug-in, so naturally I suspected this is what caused the problem. To test my theory, I had a second wiki on the same server that was working and I removed the same plug-in to witness the same disappearing act. I thought it would be an easy fix and did the same things others here reported -- disabled plug-ins, removed plug-ins, installed a fresh copy of DokuWiki with no data and no plug-ins, tried plain HTTP instead of HTTPS, nothing helped. That made me think it must be something other than DokuWiki, but I could not come up with an answer that fit all the data.
I got a clue when I used Seamonkey's Error Console and saw a message on the broken servers (one other person mentioned it here). This message does not appear on the working server:
Error: illegal character
Source File: https://.../lib/exe/js.php?tseed=1310052538
Line: 1, Column: 80
Source Code:
lers[id]=func;return window.setTimeout('timer.execDispatch('+id+')',timeout);}};�.*/function Delay(func,timeout){this.func=func;if(timeout){this.timeout=timeout;}}Delay.prototype={func:null,timeout:500,delTimer:function(){if(this.timer!==null){window.clea
And on the other broken server a similar message:
Error: illegal character
Source File: http://.../lib/exe/js.php?tseed=1310045949
Line: 1, Column: 140
Source Code:
dd:function(func,timeout){var id=++timer._cur_id;timer._handlers[id]=func;return window.setTimeout('timer.execDispatch('+id+')',timeout);}};�.*/function Delay(func,timeout){this.func=func;if(timeout){this.timeout=timeout;}}Delay.prototype={func:null,timeo
What is this weird character appearing before function Delay()? And why is there an end-comment sequence without an opening sequence? I examined the entire "line" that Seamonkey presents (12,170 characters long) and there is no matching "/*" for the close-comment shown here. This chunk of code is coming from lib/scripts/Delay.js, but I can't see any weird characters or any reason why the final close-comment line before the start of the function would be included on two servers but not on the third (besides, even if such a character was there, why was one server working with an exact copy of the software and two were not?).
The next thing I did was to down-grade one of the broken copies to a prior release of DokuWiki -- this gave me a messy-looking screen but the edit toolbar re-appeared! To get the latest data I rsync'd my (main) broken copy back over-top this one, and just for fun I checked to see if the edit worked, fully expecting it to still be broken. To my amazement the toolbar was working again and the message about the "illegal character" was gone!
Okay, that must mean there was something deleted, since all I did was add/update files. So I ran another rsync command with the "--del" option and found there were three missing files: lib/styles/style.css and three CSS files in a theme. I knew the theme ones weren't important since the problem remains when I switch to the default theme, so I tried copying this file to the instance I had that was a blank (no pages), default (no plug-ins, no themes, just enough settings to make it work), fresh installation. No dice, it still doesn't work. Argh!
I rsync the empty wiki to 64-bit server #2: Now it's working, but on server #1 still not working. Now all of them are working on this server. What? Two working and one broken now? This can't be a cache problem given the range of browsers I've tried, the cookies I've cleared, and the time that has elapsed, but it sure sounds like a browser problem. But as I check different browsers they are now all working on the same sites and all still not working on the same sites -- the laptop and desktop are the same. I opened up my last untried browser: Epiphany. Same as the others. I'm starting to feel like I'm missing something that's going to make me feel pretty silly, but I'm stubborn...
I remove the blank wiki and transfer the copy from server #2 (where it is working) to #1. Still no buttons on server #1. Once again it is seeming like a server issue, but I eliminated that likelihood at the very start.
Next I overlaid an older DokuWiki copy on the broken wiki on server #1. No help. I put the original site back in-place and took a break; when I came back my main wiki's edit toolbar was working! It fixed itself? Every browser is now working. Bizarre! If three hours was enough to fix it, how come the prior 24+-hour lapse in time didn't fix it? I checked the other broken wikis and found they were still broken (i.e., no toolbar) and they still show the "illegal character" error in Seamonkey's Error Console.
Finally, I deleted the empty wiki, unpacked yet another fresh copy of DokuWiki 2011-05-25a, and it worked. Did an rsync from the broken copy, everything except the cache, and managed to break it again - at last! I see two files got overwritten from the broken copy:
data/meta/_htcookiesalt
data/index/page.idx
I moved both of these to /tmp/ and the toolbar buttons came back, albeit as broken images. Apache's error log tells me it is looking in the wrong directory, I have no idea why it's looking in the wrong directory, but might have something to do with using the wiki in one directory and then changing its name. Then I brought over the cache files -- in other words a complete copy of the broken empty site -- and the toolbar buttons are completely gone again, and no errors in the Apache logs (as was the case before, no errors).
I wipe the data/cache directory clean except for _dummy and the site works again:
rm -rf ?
rm messages.txt
I go back to one of the other broken empty sites, empty data/cache - bingo. Go to my second real site and empty data/cache, all is right with the world again. Whew! I'm so relieved to have found the root of the problem, I hate just hoping my servers will keep working. I got a day's egg on my face for being down on one site, but now I know this won't catch my by surprise again. And that's what I hope this lengthy story will achieve for you, too, dear reader. :-)
P.S. I note that Chromium's cache is hard to kill, it is still showing no buttons on one site, but all my other browsers are working fine again. I've noticed other issues with Chromium (v11 and v12) and DokuWiki as well. So you might want to use a browser other than Chrome/Chromium.
Kind regards,
Angelo Babudro
Nova Scotia, Canada