| Monument ( @ 2008-02-09 23:48:00 |
partlock
A couple of people have emailed me in the last week to tell me that they're still getting the "Your account hasn't been loaded into the new system yet." error (example), even though Joule 3 was launched months ago. This is (in the code) called "partlock", so that's what I'll call it here.
I had forgotten quite what caused this, so I went to take a look. Joule 2 used files on a filesystem to store each user's data; Joule 3 uses a database. What I found is that if a user doesn't exist in the Joule 3 database, the program checks to see whether there was an old Joule 2 file. If there is, it assumes the data wasn't loaded up into the Joule 3 database correctly, and you get that error.
Originally you would only see this if the import script hadn't reached your name yet, alphabetically. But the reason this happens now is that the import script just dropped accounts it couldn't import, leaving all the data safely in a file on the disk: it had a couple of hundred thousand accounts to import, and even though the vast majority imported just fine, if the script had stopped every time there was an error so that someone could fix it, it would have taken all year. (Bear in mind that Joule had to be stopped while the import script ran, to ensure integrity.) So instead, if the import failed because there was some kind of error, it just went on to the next one, thus ensuring that there'd be no Joule 3 database record but the Joule 2 file was still on the filestore. In other words, you'd get the partlock error.
The way to fix this, which I'll try to get working tomorrow if I can, is to find all the records which exist in Joule 2 but not Joule 3, and examine them to find why the original import script failed to import them. I suspect there was some sort of corruption issue, but I don't know. If the worst comes to the worst, I will just abolish the error and the accounts will begin again with no history, although that would be a rather unhelpful solution.
A couple of people have emailed me in the last week to tell me that they're still getting the "Your account hasn't been loaded into the new system yet." error (example), even though Joule 3 was launched months ago. This is (in the code) called "partlock", so that's what I'll call it here.
I had forgotten quite what caused this, so I went to take a look. Joule 2 used files on a filesystem to store each user's data; Joule 3 uses a database. What I found is that if a user doesn't exist in the Joule 3 database, the program checks to see whether there was an old Joule 2 file. If there is, it assumes the data wasn't loaded up into the Joule 3 database correctly, and you get that error.
Originally you would only see this if the import script hadn't reached your name yet, alphabetically. But the reason this happens now is that the import script just dropped accounts it couldn't import, leaving all the data safely in a file on the disk: it had a couple of hundred thousand accounts to import, and even though the vast majority imported just fine, if the script had stopped every time there was an error so that someone could fix it, it would have taken all year. (Bear in mind that Joule had to be stopped while the import script ran, to ensure integrity.) So instead, if the import failed because there was some kind of error, it just went on to the next one, thus ensuring that there'd be no Joule 3 database record but the Joule 2 file was still on the filestore. In other words, you'd get the partlock error.
The way to fix this, which I'll try to get working tomorrow if I can, is to find all the records which exist in Joule 2 but not Joule 3, and examine them to find why the original import script failed to import them. I suspect there was some sort of corruption issue, but I don't know. If the worst comes to the worst, I will just abolish the error and the accounts will begin again with no history, although that would be a rather unhelpful solution.