Skip to content

Exception on connection to server with foreign_key #282

Closed
@sergeybe

Description

@sergeybe

I'm trying to run the next simple server code with foreign_key:

box.cfg{listen = 3301}

box.once("some_bug", function()
    box.schema.user.grant('guest', 'read,write,execute,create,alter,drop,usage,session', 'universe')

    table1 = box.schema.space.create('table1')
    table1:format({
        { name = 'id', type = 'integer' },
        { name = 'title', type = 'string' },
    })

    table2 = box.schema.space.create('videohash')
    table2:format({
        { name = 'id', type = 'integer' },
        { name = 'table1_id', type = 'integer', 
          foreign_key = { fk_video = { space = 'table1', field = 'id' }} },   -- Problem line here
        { name = 'name', type = 'string' },
    })
end)

require('console').start()

Then I'm trying to run:

% python
Python 3.11.2 (main, Feb 16 2023, 03:07:35) [Clang 14.0.0 (clang-1400.0.29.202)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import tarantool
>>> connection = tarantool.Connection('localhost', 3301)
Traceback (most recent call last):
  File "/Users/user/.virtualenvs/test1/lib/python3.11/site-packages/tarantool/schema.py", line 163, in __init__
    format_raw = to_unicode_recursive(space_row[6], 3)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/user/.virtualenvs/test1/lib/python3.11/site-packages/tarantool/schema.py", line 74, in to_unicode_recursive
    val = to_unicode_recursive(val, max_depth - 1)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/user/.virtualenvs/test1/lib/python3.11/site-packages/tarantool/schema.py", line 67, in to_unicode_recursive
    val = to_unicode_recursive(val, max_depth - 1)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/user/.virtualenvs/test1/lib/python3.11/site-packages/tarantool/schema.py", line 66, in to_unicode_recursive
    key = to_unicode_recursive(key, max_depth - 1)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/user/.virtualenvs/test1/lib/python3.11/site-packages/tarantool/schema.py", line 61, in to_unicode_recursive
    raise RecursionError('Max recursion depth is reached')
tarantool.schema.RecursionError: Max recursion depth is reached

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/user/.virtualenvs/test1/lib/python3.11/site-packages/tarantool/connection.py", line 1042, in connect
    self.load_schema()
  File "/Users/user/.virtualenvs/test1/lib/python3.11/site-packages/tarantool/connection.py", line 1261, in load_schema
    self.schema.fetch_space_all()
  File "/Users/user/.virtualenvs/test1/lib/python3.11/site-packages/tarantool/schema.py", line 299, in fetch_space_all
    SchemaSpace(row, self.schema)
  File "/Users/user/.virtualenvs/test1/lib/python3.11/site-packages/tarantool/schema.py", line 166, in __init__
    raise SchemaError(errmsg)
tarantool.error.SchemaError: Unexpected space format structure: Max recursion depth is reached

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/user/.virtualenvs/test1/lib/python3.11/site-packages/tarantool/connection.py", line 812, in __init__
    self.connect()
  File "/Users/user/.virtualenvs/test1/lib/python3.11/site-packages/tarantool/connection.py", line 1049, in connect
    raise NetworkError(e)
tarantool.error.NetworkError: Unexpected space format structure: Max recursion depth is reached
>>>

When I comment the line with foreign_key my code can connect without problem.
Please help.

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions