ambari-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tom Beerbower" <tbeerbo...@hortonworks.com>
Subject Re: Review Request 35528: Views : DataStore persistence error
Date Tue, 16 Jun 2015 19:41:50 GMT


> On June 16, 2015, 7:26 p.m., Nate Cole wrote:
> > The code looks like it caps the length of a value (ok), but where is the definition
of that storage - in a db script somewhere?  No sql changes to support the bigger field? 
I thought this might be "viewinstancedata" but I'm not sure.
> 
> Nate Cole wrote:
>     Oh, I see you said it's a dynamic entity - I thought there was a definition somewhere.
 You can ignore :)  Just Jonathan's suggestions and I'm good.

Thanks for the review! 

Yeah, the view DataStore uses dynamic entites.  By default String types map to VARCHAR(255),
which lead to this issue as soon as someone tried to persist an entity with a long String.
 So, instead of the way I handled it in this patch, I could (I think) map the Strings to a
CLOB.  Would that be a better solution?


- Tom


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/35528/#review88110
-----------------------------------------------------------


On June 16, 2015, 6:31 p.m., Tom Beerbower wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/35528/
> -----------------------------------------------------------
> 
> (Updated June 16, 2015, 6:31 p.m.)
> 
> 
> Review request for Ambari, Jonathan Hurley and Nate Cole.
> 
> 
> Bugs: AMBARI-11957
>     https://issues.apache.org/jira/browse/AMBARI-11957
> 
> 
> Repository: ambari
> 
> 
> Description
> -------
> 
> In one case we are seeing this exception while trying to store data from a view ...
> 
>     java.lang.IllegalStateException:
>     Exception Description: No transaction is currently active
>         at org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.rollback(EntityTransactionImpl.java:176)
>         at org.apache.ambari.server.view.persistence.DataStoreImpl.store(DataStoreImpl.java:135)
>         at org.apache.ambari.view.hive.persistence.DataStoreStorage.store(DataStoreStorage.java:76)
>         at org.apache.ambari.view.hive.resources.CRUDResourceManager.save(CRUDResourceManager.java:117)
>         at 
> 
> The underlying exception ...
> 
>     Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd):
org.eclipse.persistence.exceptions.DatabaseException
>     Internal Exception: org.postgresql.util.PSQLException: ERROR: value too long for
type character varying(255)
>     Error Code: 0
>     Call: UPDATE DS_JOBIMPL_4 SET DS_applicationId = ?, DS_duration = ?, DS_sqlState
= ?, DS_status = ?, DS_statusMessage = ? WHERE (DS_id = ?)
> 	    bind => [6 parameters bound]
> 
> 
> This occurs because the view tries to save an entity with a String type attribute which
is mapped to a VARCHAR(255).  The dynamic entity code maps the String to a VARCHAR using the
database default length.
> 
> Also, once the exception is thrown, the DataStore catches it and tries to rollback the
transaction.  It looks like the tx is already inactive at this point so a different exception
is thrown out.  The original exception should at least be logged by the DataStoreImpl.
> 
> 
> Diffs
> -----
> 
>   ambari-server/src/main/java/org/apache/ambari/server/view/persistence/DataStoreImpl.java
8353d63 
>   ambari-server/src/test/java/org/apache/ambari/server/view/persistence/DataStoreImplTest.java
2b19b0a 
> 
> Diff: https://reviews.apache.org/r/35528/diff/
> 
> 
> Testing
> -------
> 
> Manual tested.
> 
> New unit tests added.
> 
> mvn clean test
> 
> all pass
> 
> [INFO] ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 46:25 min
> [INFO] Finished at: 2015-06-16T13:42:50-04:00
> [INFO] Final Memory: 54M/1453M
> [INFO] ------------------------------------------------------------------------
> 
> 
> Thanks,
> 
> Tom Beerbower
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message