is this happening on the Community Edition, or on the live version?
Giulio Cesare
Thanks for the update.
Best regards,
Giulio Cesare
On Wed, Aug 27, 2008 at 11:54 AM, <alexey...@gmail.com> wrote:
>
> it's about online version
> >
>
- if you try to register with a username/passphrase that already
exist, you get an error (and we know since long ago that we should try
to handle this kind of errors more politely, but being quite rare we
did not put too much effort into fixing it);
- if you try to login using the same username/passphrase after a
failed registration, you get a failed login.
In my test environment, simply restarting the server fixed the problem
immediately.
This probably means that the application is triggered into an
inconsistent state, that does not allow the user to login again. But
no actual data is lost.
In order to be able to login again, you probably need to wait until
the server side session is expired (or the application restarted for
other reasons, but this is quite rare, as the online application has
some venerable uptimes - current uptime is almost 42 days).
So, unless you are seeing something completely different from what I
am seeing, I would consider this a minor bug with very little options
to actually be triggered.
Does this match your findings?
Best regards,
Giulio Cesare
On Wed, Aug 27, 2008 at 1:36 PM, <aka...@gmail.com> wrote:
>
> so? any results?
> >
>
I reproduced the bug on the Community Edition. Being the CE, I could
take a look at the whole picture (code, database, communication between
the client and the server) and I have seen that:
1. original user account data doesn't get deleted;
2. duplicate user accounts (with different uids but same username) are
created;
3. the problem is into the POST on index.php with METHOD:registration,
here (index.php line:231) you have:
switch($method) {
case "registration":
$message = $parameters["message"];
if ($message == "completeRegistration") {
$user = new user();
updateUserCredentials($parameters["credentials"], $user);
updateUserData($parameters["user"],
$user);
$user->Save();
$result["lock"] = $user->lock;
$result["result"] = "done";
}
break;
no control is in place to check if the username does yet exists.
--
Marco
=====
"We know nothing
— that is the first point.
Therefore we should be very modest
— that is the second.
That we should not claim to know when we do not know
— that is the third."
Karl R. Popper