Re: Crossed Accounts Issue

2012-02-01 Thread Eric Williams

> > I have an issue that I am hoping one of you can help me out with. 
>  The issue is caused when more than one user logs in
> > with a few tenths of a second of each other.  This happens maybe 
> once every few weeks on a high volume application.
> > The problem is with user information getting mixed up when 
> authenticating.
> >
> > As you can see from the code below the authenticate component is 
> called right before setting the session username.
> > The authenticate component does all the basic checks and returns the 
> user info.  In these rare instances the
> > session.RetAuth.username and all the info returned from the 
> component are for another user that is logging in at the same
> > time.
> >
> > 
> >        if(NOT IsDefined("APPLICATION.oUser")){
> >                APPLICATION.oUser=CreateObject("component",
> "#APPLICATION.G.CFC_PATH#User");
> >        }
> >        APPLICATION.oUser.DSN=this.DSN;
> >        
> >         Login,form.Password)>
> >        
> 
> This is a race condition issue. You can solve it by implementing
> locking, either around this code or perhaps within your component.
> 
> Dave Watts, CTO, Fig Leaf Software
> http://www.figleaf.com/
> http://training.figleaf.com/
> 
> Fig Leaf Software is a Veteran-Owned Small Business (VOSB) on
> GSA Schedule, and provides the highest caliber vendor-authorized
> instruction at our 

Dave,

I already have a lock in the component, I create a unique uuid on each request 
for the lock.  Did not solve the problem.  Might try a lock around the entire 
login code.

~|
Order the Adobe Coldfusion Anthology now!
http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion
Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:349711
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm


Crossed Accounts Issue

2012-02-01 Thread Eric Williams

I have an issue that I am hoping one of you can help me out with.  The issue is 
caused when more than one user logs in with a few tenths of a second of each 
other.  This happens maybe once every few weeks on a high volume application.  
The problem is with user information getting mixed up when authenticating.  

As you can see from the code below the authenticate component is called right 
before setting the session username. The authenticate component does all the 
basic checks and returns the user info.  In these rare instances the 
session.RetAuth.username and all the info returned from the component are for 
another user that is logging in at the same time.  


if(NOT IsDefined("APPLICATION.oUser")){

APPLICATION.oUser=CreateObject("component","#APPLICATION.G.CFC_PATH#User");
}
APPLICATION.oUser.DSN=this.DSN;


 

~|
Order the Adobe Coldfusion Anthology now!
http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion
Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:349704
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm