ambari-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonathan Hurley" <jhur...@hortonworks.com>
Subject Re: Review Request 35528: Views : DataStore persistence error
Date Tue, 16 Jun 2015 20:27:55 GMT

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

Ship it!



ambari-server/src/main/java/org/apache/ambari/server/view/persistence/DataStoreImpl.java (line
307)
<https://reviews.apache.org/r/35528/#comment140517>

    In general, I think this is safer if this is truly a dynamic field. This might map to
things like LARGETEXT which is a slight performance hit on some DBs like MySQL, but if this
isn't a high traffic field, then it's not a problem. 
    
    I'm also not sure of CLOBs are natively searchable on some DBs, like Oracle.
    
    But again, I don't think you're doing 10,000 tx's / minute or using native search queries,
so you're fine.


- Jonathan Hurley


On June 16, 2015, 4:21 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, 4:21 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