AngelM wrote: ↑
Thu Nov 28, 2019 7:20 pm
I have marked this as Solved. Warmweer may have other info to explain the process he went through...but for me, my forum is complete now.
HAhaha, "the process"? Yeah, it was was some process. This is one I'll remember all my life (not only because of the time needed but certainly because initially I underestimated the problem.
Expanding slightly on Angels post. (I'll keep it short - my memories and paper notes aren't very clear anyway)
Checked my archives and how time flies by :0 This is a board I offered to take a look at around the middle of January. The board (phpBB 3.2.5) was broken after an update from 3.2.4.
I looked at the files they were a mix of 3.2.5 files, 3.2.4 files and 3.0.x files, about double the number a normal phpBB 3.2 should have. On top of that many (really many) files had different filesizes, extra code (reduntant or incomplete edits) or lacked certain code. It's a guess but I think not more than 80% of the true 324 files were unmodified 324.
That 3.2.5 was unfixable (certainly on short notice) and AFAIR the phpversion had been upgraded to 7.2 so that had to be downgraded again and AngelM got the host to restore the 3.2.4 version (in that respect the host did what they had to do).
That was functional online and on localhost but it was undateble
un-updateble (no matter wat I tried the update failed).
Then a very lengthy process trying to identify which files were identical to phpBB3.2.4 files (but for empty lines and date changes) (This is were a powerful directory compare program is absolutely essential), and then an even lengthier process to identify unwanted database changes.
The modules tables had missing records + records with non-default ids +superfluous records. I also remember some redundant tables and fields.
The cumulative fixing of the database itself probably took only a couple of hours in total but spread over weeks due to the searching for info about what that part should do exactly what and how it's connected to other parts. With phpBB 2.0 and 3.0 I was fairly confident but 3.2 made me realise (again) that trusting memory isn't always a good idea.
Eventually couldn't keep track anymore and started comparing tables exported as SQL instead of linking tables looking for orphans and extras. (a decent file compare program is essential).
Every little thing I found (bit by bit) was then corrected on localhost in stages and tested with php 5.6 and 7.1 before uploading the cleaned files and "cleaner" database.
Anyway, by the time I was confident the 3.2.4 could be updated to 3.2.5 without risk, 3.2.6 was released and since I also take holidays once in a while, everything was postponed until 3.2.7 was released (giving me more time to try and finalise this undertaking)
The transition to 3.2.7 was used primarily to clean the legitimate modifications (make them easily identifiable when updating) and remove unused old code, but by God it takes long to certify that certain files or specific parts of the code which were not default 3.2.7 code were actually never used.
And just yesterday I finally updated the 3.2.7 to 3.2.8 (again after some deep comparing with a default 3.2.8 database and now it's 100% equal).
This was a really difficult one because there even though there were so many file changes (extra lines, sometimes empty, sometimes missing lines, sometimes edited), extra php files, extra html files, extra css and extra images, only on a few occasion did they cause an error and I had difficulties keeping track of what was cleared.
If I were to encounter a similar situation now, it'ld be easier to fix with a revamped methodology but I hope I never have another one like this (even though I learned a lot from it).
The underlying cause of all the problems is clear: autoupdate (and I also suspect an initial installatron or likewise installation). The strange thing is that in this case the previous autoupdate(s) didn't break the board nor further updating. I guess it'll remain a mystery forever.
Today deleted about 5 GB of backups, only keeping the 327 and the 328 just in case.