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

Error During 3.1.3 Version installation #848

Closed
lwasylow opened this Issue Mar 6, 2019 · 4 comments

Comments

Projects
None yet
2 participants
@lwasylow
Copy link
Member

lwasylow commented Mar 6, 2019

Describe the bug
Error when installing utPLSQL:

Installing component UT_SUITE_CACHE
alter table ut_suite_cache add constraint ut_suite_cache_uk1 unique (object_owner, path)
*
ERROR at line 1:
ORA-01450: maximum key length (3118) exceeded

Provide version info
Information about utPLSQL and Database version,

12.1.0.2.0
12.1.0.2

PL/SQL procedure successfully completed


BANNER                                                                               CON_ID
-------------------------------------------------------------------------------- ----------
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production              0
PL/SQL Release 12.1.0.2.0 - Production                                                    0
CORE	12.1.0.2.0	Production                                                                0
TNS for Linux: Version 12.1.0.2.0 - Production                                            0
NLSRTL Version 12.1.0.2.0 - Production                                                    0

PARAMETER                      VALUE
------------------------------ ----------------------------------------------------------------
NLS_LANGUAGE                   AMERICAN
NLS_TERRITORY                  AMERICA
NLS_CURRENCY                   $
NLS_ISO_CURRENCY               AMERICA
NLS_NUMERIC_CHARACTERS         .,
NLS_CALENDAR                   GREGORIAN
NLS_DATE_FORMAT                DD-MON-RRRR
NLS_DATE_LANGUAGE              AMERICAN
NLS_SORT                       BINARY
NLS_TIME_FORMAT                HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY              $
NLS_COMP                       BINARY
NLS_LENGTH_SEMANTICS           BYTE
NLS_NCHAR_CONV_EXCP            FALSE

17 rows selected


PORT_STRING
--------------------------------------------------------------------------------
x86_64/Linux 2.4.xx

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_block_size                        integer     4096

Information about client software
N/A

To Reproduce
Install utPLSQL on 4k block database version

Expected behavior
Successful Installation.

@jgebal

This comment has been minimized.

Copy link
Member

jgebal commented Mar 14, 2019

We need to introduce a limit on size of suitepath.
Currently it's 4000 bytes (max varchar2 for persistence).
It should be about 1000 bytes, as it's more than enough for suite nesting.
Path longer than 500 chars is probably already too long/too deep.

@lwasylow

This comment has been minimized.

Copy link
Member Author

lwasylow commented Mar 15, 2019

We can change a size of variable path to 1000 bytes.
Do we want to fail gracefully when path is too long , my worries is that it will not be a real failure of test as it will be lets call culmination of previous suitepath leading to failure a given tests.
We should ideally fail all, I assume annotations are build before execution.

@jgebal

This comment has been minimized.

Copy link
Member

jgebal commented Mar 15, 2019

I would create a test to see how it behaves now.
I assume it will fail on insert into the table.
The insert happens before suite was run.
We could:

  • save exceptions and add those too long paths as warnings (might be complex to do)
  • raiseva custom, more meaningful exception and stop execution.

I like the first option more but the second one is much easier to do.

@lwasylow

This comment has been minimized.

Copy link
Member Author

lwasylow commented Mar 15, 2019

Yes I think the second one given timescales is more feasible. I would like to get that out fixed with next release as it can be stopper for upgrading to newer versions.
Currently when limit a path to 1000 char we got

ORA-06512: at "UT3.UT_SUITE_CACHE_MANAGER", line 85
ORA-06512: at "UT3.UT_SUITE_MANAGER", line 486
ORA-06512: at "UT3.UT_SUITE_MANAGER", line 520
ORA-06512: at "UT3.UT_SUITE_MANAGER", line 596
ORA-06512: at "UT3.UT_RUNNER", line 131
ORA-12899: value too large for column "UT3"."UT_SUITE_CACHE"."PATH" (actual: 1191, maximum: 1000)

We can just make that error a bit nicer maybe but to be fair its pretty clear anyway.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.