Looks like i've pinpointed the problem. The faulty code is in RDBMDistributedLayoutStore#importLayout() - it is marked as transactional, hence starts a new transaction, but at the end of method it calls #setUserLayout() which creates a new connection and starts another transaction which turns out to be locked by the first one. Unfortunately i'm not sure i can solve this problem at the moment, but at least I hope this helps with identifying the issue.
-- Arvīds 2011/6/14 Arvīds Grabovskis <[email protected]> > Today i tried my luck with MSSQL - the same problem as with postgres (one > transaction is waiting indefinitely for another one). Btw, I found those > issues that relate to MySQL problems regarding unescaped fields ( > https://issues.jasig.org/browse/UP-3054) and > https://issues.jasig.org/browse/UP-3027. But the latter one also mentions > the problems while acquiring a lock. Should I create a JIRA issue for this > or append description to UP-3027? > > -- Arvīds > > > 2011/6/13 Eric Dalquist <[email protected]> > >> Yeah, there are some issues we know about with those two DBs. I'm hoping >> to have time to look into both this week. I believe Oracle is working >> correctly. >> >> -Eric >> >> >> On 6/13/11 10:12 AM, Arvīds Grabovskis wrote: >> >> Hi, >> >> I'm experiencing some problems when using PostgreSQL or MySQL as database >> for uPortal v4 (latest in trunk). >> >> Regarding MySQL: >> MySQL complains about DML statement syntax. For example there's a query: >> create table UP_PORTLET_DEF_PARAM (PARAM_ID bigint not null, DESC >> varchar(255), NAME varchar(255) not null, VAL longtext, PORLTET_DEF_ID >> bigint not null, primary key (PARAM_ID)) >> But MySQL doesn't accept it since it contains 'DESC' column name which is >> a keyword that should be escaped when using as column name. >> >> Regarding PostgreSQL: >> "ant initportal" runs till this place: >> [java] Import User: user/system.user >> [java] Import Profile: profile/system-1.profile >> [java] Import Layout: layout/system.layout >> [java] WARN Could not find a specific ehcache configuration for >> cache regionNamed >> 'org.jasig.portal.layout.dao.jpa.StylesheetUserPreferencesImpl.query.FIND_PREFERENCES_BY_DESCRIPTOR_PERSON_PROFILE_CACHE_REGION'. >> The default cache will be used. >> ... and hangs. PG server shows that query 'UPDATE UP_USER SET >> LST_CHAN_UPDT_DT=$1 WHERE USER_ID=$2 ' is being executed. I assume that >> there's some kind of deadlock in database (though schema was created as it >> should be). I've traced queries at PG server side (attached at the bottom of >> message), but i'm not sure what to do next. >> >> Am I missing something (like additional configuration or my databases are >> messed up) or everyone on trunk is using HSQLDB and support for other >> databases might be broken? >> >> -- Arvīds >> >> 2011-06-13 15:38:34.189 >> EEST,"portal","portal4",6625,"127.0.0.1:36487",4df604c5.19e1,11,"BEGIN",2011-06-13 >> 15:38:29 EEST,4/98,0,LOG,00000,"execute S_1: BEGIN",,,,,,,, >> 2011-06-13 15:38:34.189 >> EEST,"portal","portal4",6625,"127.0.0.1:36487",4df604c5.19e1,12,"DELETE",2011-06-13 >> 15:38:29 EEST,4/98,0,LOG,00000,"execute <unnamed>: DELETE FROM >> UP_LAYOUT_PARAM WHERE USER_ID=$1 AND LAYOUT_ID=$2","parameters: $1 = '1', $2 >> = '1'",,,,,,, >> 2011-06-13 15:38:34.190 >> EEST,"portal","portal4",6625,"127.0.0.1:36487",4df604c5.19e1,13,"DELETE",2011-06-13 >> 15:38:29 EEST,4/98,0,LOG,00000,"execute <unnamed>: DELETE FROM >> UP_LAYOUT_STRUCT WHERE USER_ID=$1 AND LAYOUT_ID=$2","parameters: $1 = '1', >> $2 = '1'",,,,,,, >> 2011-06-13 15:38:34.191 >> EEST,"portal","portal4",6625,"127.0.0.1:36487",4df604c5.19e1,14,"SELECT",2011-06-13 >> 15:38:29 EEST,4/98,0,LOG,00000,"execute <unnamed>: SELECT * FROM >> UP_USER_LAYOUT WHERE USER_ID=$1 AND LAYOUT_ID=$2","parameters: $1 = '1', $2 >> = '1'",,,,,,, >> 2011-06-13 15:38:34.192 >> EEST,"portal","portal4",6625,"127.0.0.1:36487",4df604c5.19e1,15,"SELECT",2011-06-13 >> 15:38:29 EEST,4/98,0,LOG,00000,"execute <unnamed>: SELECT USER_DFLT_USR_ID >> FROM UP_USER WHERE USER_ID=$1","parameters: $1 = '1'",,,,,,, >> 2011-06-13 15:38:34.193 >> EEST,"portal","portal4",6625,"127.0.0.1:36487",4df604c5.19e1,16,"SELECT",2011-06-13 >> 15:38:29 EEST,4/98,0,LOG,00000,"execute <unnamed>: SELECT >> USER_ID,LAYOUT_ID,LAYOUT_TITLE,INIT_STRUCT_ID FROM UP_USER_LAYOUT WHERE >> USER_ID=$1","parameters: $1 = '0'",,,,,,, >> 2011-06-13 15:38:34.193 >> EEST,"portal","portal4",6625,"127.0.0.1:36487",4df604c5.19e1,17,"INSERT",2011-06-13 >> 15:38:29 EEST,4/98,0,LOG,00000,"execute <unnamed>: INSERT INTO >> UP_USER_LAYOUT (USER_ID, LAYOUT_ID, LAYOUT_TITLE, INIT_STRUCT_ID) VALUES >> ($1,$2,$3,$4)","parameters: $1 = '1', $2 = '1', $3 = 'default layout', $4 = >> '1'",,,,,,, >> 2011-06-13 15:38:34.194 >> EEST,"portal","portal4",6625,"127.0.0.1:36487",4df604c5.19e1,18,"UPDATE",2011-06-13 >> 15:38:29 EEST,4/98,42521,LOG,00000,"execute <unnamed>: UPDATE UP_USER_LAYOUT >> SET INIT_STRUCT_ID=$1 WHERE USER_ID=$2 AND LAYOUT_ID=$3","parameters: $1 = >> '0', $2 = '1', $3 = '1'",,,,,,, >> 2011-06-13 15:38:34.196 >> EEST,"portal","portal4",6625,"127.0.0.1:36487",4df604c5.19e1,19,"UPDATE",2011-06-13 >> 15:38:29 EEST,4/98,42521,LOG,00000,"execute <unnamed>: UPDATE UP_USER SET >> LST_CHAN_UPDT_DT=$1 WHERE USER_ID=$2","parameters: $1 = '2011-06-13 >> 00:00:00', $2 = '1'",,,,,,, >> >> -- >> >> You are currently subscribed to [email protected] as: >> [email protected] >> To unsubscribe, change settings or access archives, see >> http://www.ja-sig.org/wiki/display/JSG/uportal-dev >> >> > -- You are currently subscribed to [email protected] as: [email protected] To unsubscribe, change settings or access archives, see http://www.ja-sig.org/wiki/display/JSG/uportal-dev
