Jump to content

So IPB4 deletes users accounts without warning?


Izaya Orihara

Recommended Posts

Posted

Okay; yep. It seems to be upgraded installations that it's reproducible on. I wonder if this is why it couldn't be reproduced by staff...

Untitled.thumb.jpg.57e62c09eb95fae7b90d5
This happened after setting username to: ?A Username

It still didn't "Delete" the account though, so I suspect (and hope) the account is still there, somewhere, Dorian. I have my fingers crossed for you.

BUT... I had a look at my database; more specifically Collation's. Take a peak at this noise:

Untitled2.thumb.jpg.ba88849c6d13bc85e43d
Now I would like to say Collation doesn't imply causation... xP

But then I remembered what @Ralf H. said earlier:

​An emoji is a 4byte character, right? So I looked into it and found that it was utf8_unicode_ci which I changed to utf8mb4_unicoode_ci. This didn't fix it, and I found that the actual name was also stuck on this collation, so I changed that to utf8mb4_unicoode_ci and all. This didn't work either. But silly me, it's also varchar(255) -> Which I changed to BLOB, (As a type)... Low and behold:

Untitled_WORKS.thumb.jpg.aa047a004f63fbe

Fixed it. :D

​that sounds so foreign to me :D

dumb it down for me lol

  • Replies 52
  • Created
  • Last Reply
Posted

​An emoji is a 4byte character, right? So I looked into it and found that it was utf8_unicode_ci which I changed to utf8mb4_unicoode_ci. This didn't fix it, and I found that the actual name was also stuck on this collation, so I changed that to utf8mb4_unicoode_ci and all. This didn't work either. But silly me, it's also varchar(255) -> Which I changed to BLOB, (As a type)... Low and behold:

Fixed it. :D

​And here I was thinking I made a mistake choosing utf8mb4_unicoode_ci over just utf8_unicoode_ci. lol

Posted

​that sounds so foreign to me :D

dumb it down for me lol

​Dumb it down? In a few words... Wait for IPS. xP

In seriousness; you're basically putting Emoji into a field that (in the database) can't support it. Instead of stripping the incompatible character out - it blanks the whole field. 

DO NOT FOLLOW MY STEPS IN "FIXING IT" because (and I only found this out this morning) it will lockout the other accounts saying it's not in the database. I will look at how a clean install of IPS4 does it and see if I can come up with a working solution, although I don't recommend doing anything until IPS Support tells you to, as I am still learning about all of this stuff myself and just sharing what I find out. At the moment I get the following error "The Display Name you entered does not belong to any account. Make sure that it is typed correctly."

​And here I was thinking I made a mistake choosing utf8mb4_unicoode_ci over just utf8_unicoode_ci. lol

​In the converter (the thing we had to run before upgrading) I did select utf8mb4_unicoode_ci. For some reason the converter didn't work properly. I'm going to go out on a limb here and say @Dorian Gray used the UTF8 converter before updating from 3.4.x to 4.0.x which would make sense because we had to. I have no idea if s/he used utf8mb4_unicoode_ci or utf8_unicoode_ci but I know for sure I picked the former, definitely not the latter - because it was conscious decision that had to be debated with my fellow administrators for our site. 

For example:

utf8mb4_unicoode_ci: Slower Speed + Emoji Support <--- Which we wanted
utf8_unicoode_ci: Faster Speed + No Emoji Support

My guess is for whatever reason the converter failed, and whilst I did make a backup; I did the conversion way before Christmas and I was only told to back up incase it didn't work and after it did work I wouldn't need the backup. If this is a bug that was fixed in the converter that I will need to convert my old database again I'd be rolling back to before September 2014; which is unacceptable, or... I can restart my forums which is outrageously unacceptable. My only choice is to hope that the converter can do it properly or manually change the types and collations myself; or wait and see if IPS can suggest anything better.

I sort of did this whilst I was waiting, in the hopes that it could help locate and track down where the problem was and what was causing it. I also tried to see in what circumstance would it cause one's account to be deleted; I can't answer that because I don't know. I wasn't able to get an account to be deleted, just their username.

Edit:

A fresh install has all tables set to utf8mb4_unicode_ci and the display name table is set to varchar(255) utf8mb4_unicode_ci not blob utf8mb4_unicode_ci which didn't work for me when I played around with it yesterday from a converted one.  I should have known it wasn't that simple. 

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...