Evgeny Stanilovsky created IGNITE-21900:
-------------------------------------------
Summary: meta --remove does not delete the <typeId>.classname0
file from db/marshaller causing errors on subsequent type re-registration
Key: IGNITE-21900
URL: https://issues.apache.org/jira/browse/IGNITE-21900
Project: Ignite
Issue Type: Bug
Components: general
Affects Versions: 2.16
Reporter: Evgeny Stanilovsky
Assignee: Evgeny Stanilovsky
meta --remove command deletes the type from db/<binary-meta>/<node-id> but not
from db/marshaller -
This causes errors if the server tries to re-create the type w/the same name
but different case.
say the user created the type model.Account (upper case A)
CREATE TABLE my_table(..) WITH
key_type=model.Accountkey,value_type=model.Account
then dropped the table, DROP TABLE my_table.
and ran a --meta remove --typeName mode.Account
If the users change the case of the type say from model.Account to
model.account – one letter to lowercase
and then does a subsequent:
CREATE TABLE my_table(..) WITH
key_type=model.accountkey,value_type=model.account
then does an INSERT, the server will come back with “Failed to register class”
{noformat}
Caused by: org.apache.ignite.internal.DuplicateTypeIdException: Duplicate ID
[platformId=0, typeId=1853064544,
oldCls=com.ual.cfa.fa.model.CFAFaPairNonFltDutyHistKey,
newCls=com.ual.cfa.fa.model.CFAFaPairNonfltDutyHistKey]
at
org.apache.ignite.internal.MarshallerContextImpl.registerClassName(MarshallerContextImpl.java:223)
~[ignite-core.jar]
at
org.apache.ignite.internal.binary.BinaryContext.registerUserClassName(BinaryContext.java:1185)
~[ignite-core-.jar]
{noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)