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

No suitable drivers found #19

Open
Nikos410 opened this issue Jan 3, 2024 · 24 comments
Open

No suitable drivers found #19

Nikos410 opened this issue Jan 3, 2024 · 24 comments
Labels
bug Something isn't working

Comments

@Nikos410
Copy link
Member

Nikos410 commented Jan 3, 2024

See: 6314b3c#commitcomment-135357342

Hello, I need your help with the Firebird 1.5 drive, find out that the base is connected but when performing a search in the tables it does not open and the following information appears
"No suitable drivers found for jdbc:firebirdsql://192.168.100.2:3050//home/bases/basedados_master.fdb?encoding=ISO8859_1"

and also
"Attention: :firebird driver is using Honey SQL 1. This method is deprecated in 0.46.0 and will be deleted in a future release."
Thank you very much in advance for your help.

We might have to some chores and update some of the methods mentioned in https://github.com/metabase/metabase/blob/master/docs/developers-guide/driver-changelog.md

@Nikos410
Copy link
Member Author

Nikos410 commented Jan 3, 2024

Hey @AntoninoRocha can you reproduce the issue with a Firebird 3+ database or does it only happen with firebird 2(.5)?

@Nikos410
Copy link
Member Author

Nikos410 commented Jan 3, 2024

Also, which Metabase version are you running? I assume the latest?

@Nikos410 Nikos410 added the bug Something isn't working label Jan 3, 2024
@Michael-1Mueller
Copy link

Michael-1Mueller commented Jan 4, 2024

Today I tested this again in Windows, my yesterdays comment was on Docker. I have the same problem on Win.
To we need to place the jbird driver somewhere? I am using FB 2.5.7 But it actually doesent matter what I type in the massage comes allways, as soon I typed in something in the initial field an hit save.

@Michael-1Mueller
Copy link

Michael-1Mueller commented Jan 4, 2024

I got it working on 0.4.7.10 So it seams to be a problem with the later versions.
The log has endless deprecation warnings
2024-01-04 16:19:16,820 WARN query-processor.deprecated :: Warnung: Treiber :firebird verwendet Honey SQL 1. Diese Methode wurde in 0.46.0 abgelöst und wird in künftigen Releases entfernt.

Wich means firebird using Honey SQL 1 which is deprecated from 4.6.0

@gilsonwindsoft
Copy link

Same problem here.

@firstDismay
Copy link

firstDismay commented Jan 11, 2024

When I try to connect a Firebird 2.5 database file, version Metabase 0.48.2 driver 1.5.0, I also get a message, driver not found(It is in the list):

Metabase[3302179]:         at clojure.core$binding_conveyor_fn$fn__5823.invoke(core.clj:2047)
янв 11 10:48:25 localhost Metabase[3302179]:         at clojure.lang.AFn.call(AFn.java:18)
янв 11 10:48:25 localhost Metabase[3302179]:         at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
янв 11 10:48:25 localhost Metabase[3302179]:         at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
янв 11 10:48:25 localhost Metabase[3302179]:         at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
янв 11 10:48:25 localhost Metabase[3302179]:         ... 1 more
янв 11 10:48:25 localhost Metabase[3302179]: 2024-01-11 10:48:25,790 DEBUG middleware.log :: POST /api/database 400 7,0 ms (0 вызовы БД)
янв 11 10:48:25 localhost Metabase[3302179]: {:message "No suitable driver found for jdbc:firebirdsql://111.111.111.111:/C:\\\\xxxx\\\\xxxxx\\\\xxxxx.GDB"}

I can provide more complete logs, I don’t want to litter the thread.
PS:
It turns out that the difference in the internal structure of the drivers of the main versions of the metabase requires the presence of several driver assemblies, starting with the version that you plan to support 46.x, 47.x, 48.x, 49.x, this should be indicated in the assembly description drivers or have one universal driver that takes into account the version of the calling Metabase. The second option seems more complicated. I'm using version 48.x. I have conditions for testing the driver on Firebird 3.x and 2.5.x versions for Windows

@tsbth
Copy link

tsbth commented Jan 12, 2024

Same problem here

@Angry-Engineer
Copy link

Have the same problem

@Nikos410
Copy link
Member Author

Hello everybody, sorry for the delay. We are not actively using Firebird databases anymore, so we had to find time to take a look at this issue. If anyone wants to step up as maintainer, feel free to hit me up :)

That being said, I've updated a few methods that have been deprecated / removed. Please try the attached version of the driver and let me know if it works again :)

firebird.metabase-driver-1.6.0-RC1.tar.gz

@firstDismay
Copy link

firstDismay commented Jan 16, 2024

Thanks for your time Nikos.
I was able to create a connection to a FireBird 2.5 database installed on Windows from Metabase 0.48.3. But I don't see any tables. I also see an error message in the connection string:
"Invalid connection string 111.11.111.111:/C:\\\\zzz\\\\zzz\\\\zzz.GDB, reason: Port separator: ':' at beginning or end of: 111.11.111.111: [SQLState:08001, ISC error code:337248263]"}
PS: It appears that the value of the external variable port is not being processed correctly. If it is not set, the ":" delimiter is still present in the connection string, resulting in an error. If the port is installed, it still does not appear in the connection string.

@Nikos410
Copy link
Member Author

Nikos410 commented Jan 16, 2024

@firstDismay Are you sure this is related to this issue? As far as I can see, the method for handling the connection URL did not change. Can you establish a connection when using metabase 46?

@firstDismay
Copy link

firstDismay commented Jan 17, 2024

@Nikos410 Unfortunately, due to the large number of such errors, we did not pay attention to the time of their occurrence. I was misleading with my conclusions. We have connected to the database:
Firebird 2.5 WI-V2.5.9.27139
MetaBase 0.48.3
But there is not a single table. We use the system user SYSDBA.
When I click the "Synchronize Schema" button I immediately get a Metabase message:
20-01-17-MB-FB-DRV.log

@Nikos410
Copy link
Member Author

@firstDismay Can you verify if these errors occur with Firebird 3+ too?

@firstDismay
Copy link

firstDismay commented Jan 17, 2024

@Nikos410 Yes, I want to check on version 3, almost everything is already prepared for this, if everything goes according to plan, I’ll write back tomorrow.

@firstDismay
Copy link

firstDismay commented Jan 17, 2024

@Nikos410 I converted the database to Firebird3 and successfully connected to it using DBeaver as the SYSDBA user. When connecting from MetaBase I see endless synchronization. Data tables are not displayed no. There is a similar error in the logs:
Firebird 3.0 WI-V3.0.10.33601
Metabase 0.48.3
openjdk 17.0.9 2023-10-17
OpenJDK Runtime Environment (build 17.0.9+9-Debian-1deb11u1)
OpenJDK 64-Bit Server VM (build 17.0.9+9-Debian-1deb11u1, mixed mode, sharing)
2024-01-17-MB048 FB3-DRV.txt

@Nikos410
Copy link
Member Author

Nikos410 commented Jan 18, 2024 via email

@firstDismay
Copy link

firstDismay commented Jan 18, 2024

Driver 1.6 does not work. Driver 1.5.0 works with version v0.46.7. I see tables and data. Is there any specific configuration required for the Firebird 2.5 server itself? I use Classic mode.

@firstDismay
Copy link

@Nikos410 I want to ask you will be able to adapt the driver to version 0.48.x in some foreseeable future? I found another way out for my task, but it is quite labor-intensive, so I decided to ask.

@Nikos410
Copy link
Member Author

Hello @firstDismay I sadly cannot reproduce the issue. Using Metabase 48 and firebird.metabase-driver-1.6.0-RC1 I can connect without any issues:

image

@firstDismay
Copy link

firstDismay commented Feb 1, 2024

Hello @Nikos410 which version of firebird in which mode are you using, maybe this is the issue? I just need to connect to the data files specified along the path in locations accessible to the server. As far as I understand, databases can be registered on the server and accessible simply by name without a path. I was hoping that I wouldn't have to dive too deeply into firebird administration. Since everything is working for you, I need to understand what’s wrong with my server. Thank you for your time.
EDIT:
I see lc_ctype, encoding WARN at the start of synchronization

2024-02-01 21:57:54,465 WARN jca.FBManagedConnection :: WARNING: No connection character set specified (property lc_ctype, encoding, charSet or localEncoding), defaulting to character set NONE
фев 01 21:57:54 ServerDI metabase[1119]: 2024-02-01 21:57:54,484 DEBUG middleware.log :: POST /api/database/4/sync_schema 200 37,4 ms (3 вызовы БД) Соединения с БД приложения: 0 / 4 Потоки Jetty: 4 / 50 (4 бездействует, 0 в очереди) (33 всего активных тем) Запросы в полете: 0 (0 в очереди)
фев 01 21:57:54 ServerDI metabase[1119]: 2024-02-01 21:57:54,539 WARN jca.FBManagedConnection :: WARNING: No connection character set specified (property lc_ctype, encoding, charSet or localEncoding), defaulting to character set NONE
фев 01 21:57:54 ServerDI metabase[1119]: 2024-02-01 21:57:54,539 WARN jca.FBManagedConnection :: WARNING: No connection character set specified (property lc_ctype, encoding, charSet or localEncoding), defaulting to character set NONE
фев 01 21:57:54 ServerDI metabase[1119]: 2024-02-01 21:57:54,617 ERROR sql.query-processor :: Неверная форма HoneySQL: illegal syntax in select expression
фев 01 21:57:54 ServerDI metabase[1119]: {:select [:*],

@Nikos410
Copy link
Member Author

Nikos410 commented Feb 2, 2024

Hey @firstDismay We are running Firebird 3 in (i think) SuperServer mode. In Metabase I specified the server host, Port 3050 and the database name (no file path):
image

Does that help?

@eddyvinsensius
Copy link

eddyvinsensius commented Feb 2, 2024

same issue here , with metabase v48 and driver v1.6.0rc1 ,
it said "This database doesn't have any tables." and the process keep syncing ,

but with metabase v47 and driver v1.5 it is work fine.

1

@firstDismay
Copy link

Hello @Nikos410 I registered database aliases and figured out how to specify the client connection encoding. I see that the metabase is connecting, but there is an error when accessing the first database table:
ERROR sql.query-processor :: Invalid form HoneySQL: illegal syntax in select expression {:select [:*], :from [[:metabase.util.honey-sql-2/identifier :table ["my_table"]]], :where [:not= 1 1], :modifiers ["FIRST 0"]}

@firstDismay
Copy link

I couldn't wait any longer for a solution and chose another path: exporting data using airflow. But I noticed that my MetaBase crashed several times due to inaccessible memory errors. I attributed this to your driver usage causing the systematic errors I reported earlier. I eliminated all connections and deleted the driver file and everything started working fine. I thought this might be important. Perhaps you should pay closer attention to error handling and memory release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

7 participants