Quarkus: Error when using "quarkus-hibernate-orm" dependency on Google App Engine standard

Created on 7 Nov 2019  路  8Comments  路  Source: quarkusio/quarkus

Just by adding the quarkus-hibernate-orm dependency to a project and trying to run it on Google App Engine standard, I get this error:

2019-11-07 16:58:30,265 WARN [com.arj.ats.common] (main) ARJUNA048006: cannot create new instance of com.arjuna.ats.internal.arjuna.objectstore.ShadowNoFileLockStore: java.lang.reflect.InvocationTargetException ... Caused by: com.arjuna.ats.arjuna.exceptions.ObjectStoreException: ARJUNA012225: FileSystemStore::setupStore - cannot access root of object store: /srv/ObjectStore/ShadowNoFileLockStore/defaultStore/

I was able to get over this by setting this the object store dir to the /tmp directory (remember, it's running in App Engine, so I can't just change the permissions of the default directory):

-Dcom.arjuna.ats.arjuna.objectstore.objectStoreDir=/tmp

arenarayana kinbug

Most helpful comment

For future reference - @tfve has created a discussion in the developer.jboss.org forums here https://developer.jboss.org/thread/280777

All 8 comments

thanks @tfve , good to know!

@tomjenkinson we'll need a suggestion here. Do you think we could ship Narayana with a different default?

Setting it to the tmp folder must not be done. The D in ACID is for durability which I do not believe the tmp folder meets the bar for.

Please can someone open a discussion on the google group and put the URL of the discussion here?

I am not an expert in google app engine environment, where is it's persistent data stored and does it meet all the criteria expected for transaction log storage (fully consistent and so on). If not then perhaps the JDBC store might do (assuming GAE supports full consistent database storage).

/cc @mmusgrov @ochaloup

@tomjenkinson rather than the quarkus group, shouldn't this be addressed by a discussion on the Narayana's team forums?

What is your recommendation for containers and Kubernetes? AFAIK even in that case, when a node is killed you don't get to see its logs - they might as well have been written on /tmp

More specifically about GAE, don't you have other users running on GAE? Is there any recommendation for that platform?

For OpenShift we say JDBC store: https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/7.2/html/getting_started_with_jboss_eap_for_openshift_container_platform/reference_information#transaction_recovery_jdbc_object_store

Regarding GAE we don't have specific advice for that deployment environment.

I just suggested the Quarkus group as the issue was reported here. But if you (@tfve) would like to discuss Narayana and containers generally, feel free to open a discussions topic over here: https://developer.jboss.org/en/jbosstm/content?filterID=contentstatus[published]~objecttype~objecttype[thread]

For future reference - @tfve has created a discussion in the developer.jboss.org forums here https://developer.jboss.org/thread/280777

Update on this issue:
I am now using Quarkus 1.0.0-CR1 and the issue is gone. Previously I was using 0.25.0.
Now I'm curious: what has changed between these versions? Is JTA not being used by default, now?

JTA still is the default, but we both updated Narayana and tuned the configuration a bit; I didn't know it would fix this specific issue though, good to know :)

But I suspect it's just a lucky coincidence, I think we should still figure out what's the appropriate approach to use when the configuration is changed.

Yes @Sanne, I agree.
We have to make sure it is working flawless. I'm planning on doing some transactional tests soon. I'll let you know if something funny happens.

Was this page helpful?
0 / 5 - 0 ratings