Re: [External] : Re: SQLcl Connection

  • From: kris rice <kris.rice@xxxxxxxx>
  • To: Charlotte Hammond <charlottejanehammond@xxxxxxxxx>
  • Date: Mon, 23 Aug 2021 15:18:28 -0400

Based on the stack. This issue is whatever the jdbc driver is doing to
parse apart the ezconnect syntax


Structurally these are the same so it doesn't make sense one would work and
one not which is confusing


    >> sql charlotte/mypassword@myhost/MYSID  <-- connects fine

    >> sql charlotte/wrongpassword@myhost/MYSID <-- hangs


Does this work?  sql charlotte/wrongpassword@//myhost:1521/MYSID ?

-kris



   1. .....
   at java.util.regex.Matcher.matches(Matcher.java:604)
   2. at
   
oracle.net.resolver.EZConnectResolver.resolveToLongURLFormat(EZConnectResolver.java:203)

   3. at
   oracle.net.resolver.EZConnectResolver.parse(EZConnectResolver.java:182)
   4. at
   oracle.net.resolver.EZConnectResolver.<init>(EZConnectResolver.java:130)
   5. at
   oracle.net.resolver.EZConnectResolver.newInstance(EZConnectResolver.java:139)

   6. at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:685)
   7. at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:572)
   8. at java.sql.DriverManager.getConnection(DriverManager.java:664)


On Mon, Aug 23, 2021 at 3:00 PM Charlotte Hammond <
charlottejanehammond@xxxxxxxxx> wrote:

Thanks for looking at that Kris!   Very much appreciated

I followed the link and found version 21.2.223.0914, which is the version
the jstack output is from (downloaded from Jeff's link earlier).   So,
unless I misunderstand you, it still seems to be a problem in the newer
version.

Why is it that the parsing goes into an infinite loop only if the password
(or username or service) is wrong?   Isn't it finished parsing the TNS
string by the time it sends the password to the database?

Thank you!
Charlotte


On Monday, August 23, 2021, 07:32:29 PM GMT+1, kris rice <
kris.rice@xxxxxxxx> wrote:


grr That says there's a bug in the jdbc driver's parsing of the tns string
sending it into an infinite loop !   I'd grab a newer version and that
should be fixed with the newer driver.  Since there's now no-click licenses
you can just curl/wget/download  this url directly

  >
https://download.oracle.com/otn_software/java/sqldeveloper/sqlcl-latest.zip


-kris

On Mon, Aug 23, 2021 at 2:23 PM Charlotte Hammond <
charlottejanehammond@xxxxxxxxx> wrote:

Thanks Jeff & Kris,

I've just tried 21.2.2 but am getting the same result as for 19.1.

The jstack output (for 21.2.2) is at 2021-08-23 19:08:22Full thread duimp
Java HotSpot(TM) 64-Bit Server VM (25.261- - Pastebin.com
<https://pastebin.com/YrumAC6U>

I had a quick look at the sqlnet trace output - there was nothing
blazingly obvious but I'm not really sure what to look for.  There are
plenty on this list far more knowledgeable so happy to put that up too
(will have a look at comparing a successful connection with a hang).

Thank you!
Charlotte



On Monday, August 23, 2021, 06:01:51 PM GMT+1, Jeff Smith <
jeff.d.smith@xxxxxxxxxx> wrote:


Just a heads-up in case you’re running into an old bug, 19.1 came out in
April of 2019…latest release is 21.2.2 – came out a few weeks ago. Might be
worth a quick try.



https://www.oracle.com/tools/downloads/sqlcl-downloads.html





You SHOULD see something like this –



HR@orcl> disconnect

Disconnected from Oracle Database 19c Enterprise Edition Release
19.0.0.0.0 - Production

Version 19.3.0.0.0

HR@orcl> connect hr/badpassword

  USER          = hr

  URL           = jdbc:oracle:thin:@localhost:1521/orcl

  Error Message = ORA-01017: invalid username/password; logon denied

  USER          = hr

  URL           = jdbc:oracle:thin:@localhost:1521/xe

  Error Message = Listener refused the connection with the following error:

ORA-12514, TNS:listener does not currently know of service requested in
connect descriptor

  (CONNECTION_ID=ru2FXBRqQ4y3MMPpLf0TCw==)



HR@orcl>

1:0 ¦ NOLOG ¦ NOLOG ¦ viins ¦ NOLOG ¦ NOLOG





*From:* oracle-l-bounce@xxxxxxxxxxxxx <oracle-l-bounce@xxxxxxxxxxxxx> *On
Behalf Of *kris rice
*Sent:* Monday, August 23, 2021 11:32 AM
*To:* charlottejanehammond@xxxxxxxxx
*Cc:* Oracle List <oracle-l@xxxxxxxxxxxxx>
*Subject:* [External] : Re: SQLcl Connection



That's curious. We do nothing but sling it over to the db then return when
the db is connected of failed with a message back.



2 options if you have time...

1- when it's hung, run jstack - p <pid> and float it over to me

2- sqlnet tracking to see what the db is doing.





-kris



On Mon, Aug 23, 2021 at 10:37 AM Charlotte Hammond <
dmarc-noreply@xxxxxxxxxxxxx> wrote:

Hello,



I have only just started playing with SQLcl (version 19.1 on Linux) and
have hit an oddity - just want to check if this is expected?



sql charlotte/mypassword@myhost/MYSID  <-- connects fine

sql charlotte/wrongpassword@myhost/MYSID <-- hangs



Is it meant to hang if I get my password wrong?   It looks like a bug (or
at least a misconfiguration) but since I'm new I want to make sure I'm not
overlooking something obvious.



Verbose mode shows nothing after:

INFO: Attempting to connect using URL= "jdbc:oracle:oci8:@myhost:MYSID"



The hang also happens if I get the username or service wrong (it errors if
the host is wrong).  And it's the same if I use nolog and then the connect
command.



Thank you!

Charlotte


Other related posts: