Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chimera tool quickly times out when chown -Ring large trees #7551

Open
calestyo opened this issue Apr 18, 2024 · 1 comment
Open

chimera tool quickly times out when chown -Ring large trees #7551

calestyo opened this issue Apr 18, 2024 · 1 comment
Labels
bug Chimera Problems with Chimera namespace

Comments

@calestyo
Copy link
Contributor

Hey.

When doing chimera chown -R on a large dir tree (hoping it would be faster than POSIX chown via NFS)... it times out after only a few seconds:

# chown -R 11001:11000 data12_calib
ERROR - Could not get connection to database
java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30000ms.
	at com.zaxxer.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:696)
	at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:181)
	at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:146)
	at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:100)
	at org.dcache.db.AlarmEnabledDataSource.getConnection(AlarmEnabledDataSource.java:146)
	at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:265)
	at org.springframework.transaction.support.AbstractPlatformTransactionManager.startTransaction(AbstractPlatformTransactionManager.java:400)
	at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:373)
	at org.dcache.chimera.JdbcFs.inTransaction(JdbcFs.java:240)
	at org.dcache.chimera.JdbcFs.setInodeAttributes(JdbcFs.java:1050)
	at org.dcache.chimera.FsInode.setStat(FsInode.java:371)
	at org.dcache.chimera.cli.Shell$ChownCommand.chownRecursively(Shell.java:284)
	at org.dcache.chimera.cli.Shell$ChownCommand.chownRecursively(Shell.java:287)
	at org.dcache.chimera.cli.Shell$ChownCommand.chownRecursively(Shell.java:287)
	at org.dcache.chimera.cli.Shell$ChownCommand.call(Shell.java:266)
	at org.dcache.chimera.cli.Shell$ChownCommand.call(Shell.java:203)
	at org.dcache.util.cli.AnnotatedCommandExecutor.execute(AnnotatedCommandExecutor.java:126)
	at org.dcache.util.cli.CommandInterpreter$CommandEntry.execute(CommandInterpreter.java:268)
	at org.dcache.util.cli.CommandInterpreter.doExecute(CommandInterpreter.java:187)
	at org.dcache.util.cli.CommandInterpreter.command(CommandInterpreter.java:174)
	at org.dcache.util.cli.ShellApplication.execute(ShellApplication.java:149)
	at org.dcache.util.cli.ShellApplication.console(ShellApplication.java:197)
	at org.dcache.util.cli.ShellApplication.start(ShellApplication.java:86)
	at org.dcache.chimera.cli.Shell.main(Shell.java:96)
Bug detected! Please email the following details to <[email protected]>:
org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30000ms.
	at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:309)
	at org.springframework.transaction.support.AbstractPlatformTransactionManager.startTransaction(AbstractPlatformTransactionManager.java:400)
	at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:373)
	at org.dcache.chimera.JdbcFs.inTransaction(JdbcFs.java:240)
	at org.dcache.chimera.JdbcFs.setInodeAttributes(JdbcFs.java:1050)
	at org.dcache.chimera.FsInode.setStat(FsInode.java:371)
	at org.dcache.chimera.cli.Shell$ChownCommand.chownRecursively(Shell.java:284)
	at org.dcache.chimera.cli.Shell$ChownCommand.chownRecursively(Shell.java:287)
	at org.dcache.chimera.cli.Shell$ChownCommand.chownRecursively(Shell.java:287)
	at org.dcache.chimera.cli.Shell$ChownCommand.call(Shell.java:266)
	at org.dcache.chimera.cli.Shell$ChownCommand.call(Shell.java:203)
	at org.dcache.util.cli.AnnotatedCommandExecutor.execute(AnnotatedCommandExecutor.java:126)
	at org.dcache.util.cli.CommandInterpreter$CommandEntry.execute(CommandInterpreter.java:268)
	at org.dcache.util.cli.CommandInterpreter.doExecute(CommandInterpreter.java:187)
	at org.dcache.util.cli.CommandInterpreter.command(CommandInterpreter.java:174)
	at org.dcache.util.cli.ShellApplication.execute(ShellApplication.java:149)
	at org.dcache.util.cli.ShellApplication.console(ShellApplication.java:197)
	at org.dcache.util.cli.ShellApplication.start(ShellApplication.java:86)
	at org.dcache.chimera.cli.Shell.main(Shell.java:96)
Caused by: java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30000ms.
	at com.zaxxer.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:696)
	at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:181)
	at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:146)
	at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:100)
	at org.dcache.db.AlarmEnabledDataSource.getConnection(AlarmEnabledDataSource.java:146)
	at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:265)
	... 18 more

Cheers,
Chris.

@kofemann
Copy link
Member

kofemann commented Apr 23, 2024

Looks like db connections don't play well with recursion.

@kofemann kofemann added bug Chimera Problems with Chimera namespace labels Apr 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Chimera Problems with Chimera namespace
Projects
None yet
Development

No branches or pull requests

2 participants