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)

Reply via email to