Hi,

random string insert/update test fails from time to time.
Tested with python 3.6 , pyignite and Ignite 2.8.0
On Ignite 2.7.6 work fine.
All logs and examples and py code for test in attachment.

Best regards
Dren


[dbutkovic@incumbosstest06 python]$ python3.6 test_insert_update.py
Connected to 192.168.50.106:10800
cnushrffacaexsruvuvkcpukrmqlqmyksafgagejdcdmzvrqsqacmlxsqrrzhfprkliafsyoodvxgfgoarbxeguzuwrgubhhgjv
INSERT
Connected to 192.168.50.106:10800
uebrapqingtsvbacfsvqdgrzthqdjmzqpevfcdqfrcxrhtxicwzvvjrluexmclyxyfnxswrmpdxgbuqacjetfrtsmivkbpzmcqz
INSERT
Connected to 192.168.50.106:10800
nkkrsplvfvnpaxcgrgdeuqxhxgbfdfuxzwqprzlyzuwngctlzeqrnazinkogoaqcrahnulgapwnnjldafhiyedpyhtexhbfymhn
INSERT
Connected to 192.168.50.106:10800
btqdzyqnexuvdglmopoiedjvxsnpspcsutvbicxaolxfuomksmvjtkyitzyfzllzukcukypttjzqqwvczglpxrstvruwpouempn
INSERT
Connected to 192.168.50.106:10800
eaujimzxedqdvakrdgjgwfkbkwaqtuflveblqcdrjvcgjibokswjxctrqsfkzvypditebwzwpzoxxtlaefxixegobixnguriotj
INSERT
Connected to 192.168.50.106:10800
zwtujlpgubnxsympstgensowrgglslbiplwmktbhoynvthcuwgwozidrikubqbsdjcfopcjqephutewyvlxjkpwwaakqwhfygqu
INSERT
Connected to 192.168.50.106:10800
ahvgtavnwukpjwgnjhwvuujfhkqzczyjaktlychridnaegkaxeffyanaxwsbvzwwocmgpxzstdwotmjurgxaenrnignvmavknxs
INSERT
Connected to 192.168.50.106:10800
xfmgaogjveltcbkbwsrlxpkbbphgfmswtrlmsnajwwjersxmebznobzdhkkenvawadwecpmvtuioppshstmuzehjlhfthlzypfw
INSERT
Connected to 192.168.50.106:10800
repofvdfjuuggzpwehidzgqorwweckiymzshikctkpzlybtswuwnazvmpcjxygjvxlmtyivmhgofpbeyiezkmnfxybikidwoqag
INSERT
Connected to 192.168.50.106:10800
stwsykcntmtmopxlywhhhlyklrletofkafedrwjdrgmndfsoxlkehjnlcpegylbtcnuyazhszoupkmezsnfiqlfaivhfpgjbnsl
INSERT
Connected to 192.168.50.106:10800
gkkufqbtaefbqrosfxfnfvpiucgqmipccfatrtajohrbqktjwmsxcnpykshjxftgowvwkcukbgrbamndrscrqkawkpcrwbqxvvx
INSERT
Connected to 192.168.50.106:10800
vbxjukcezwmhpjcpxlvyknmwoyxwdnvjgnpyqquxlfzlcwkefebrhomwrdhivzctktlrckktbhdvyhexswemmckbzrygzfbzllp
INSERT
Connected to 192.168.50.106:10800
dvjkqcxovijkdaftrerlwtjoxjviklpdhfrhbqqopdegarlgojvpsenepkprsbdcaiuowkihcexgyvoorkjrmiicobrkkuwrmhb
INSERT
Connected to 192.168.50.106:10800
rgsxplyhgbjhbzgkvsytcefwfdsknfnuavtanoqyfupmendojvunmnnorvqseipxdnbrhspomokkmgskzlpvmkhxvlwnhylxcnc
INSERT
Connected to 192.168.50.106:10800
pteybympxpmfsvkrzxsksmkszjybijwtghazafelueceevyaogavrklwoonuzugeamqgquweooygveiujejxagyilmghwdhdvpv
Traceback (most recent call last):
  File "test_insert_update.py", line 48, in <module>
    result_EXIST = ignite_client.sql(query_str='SELECT COUNT(*) FROM TEST WHERE 
ID = ?', query_args=[i])
  File "/usr/local/lib/python3.6/site-packages/pyignite/client.py", line 404, 
in sql
    raise SQLError(result.message)
pyignite.exceptions.SQLError: Failed to execute SQL query. General error: 
"java.lang.NullPointerException" [50000-197]



[dbutkovic@incumbosstest06 python]$ python3.6 test_insert_update.py
Connected to 192.168.50.106:10800
nwkibmrhhbdgkgnaymzeyfbmeifbivxkzsdfvriwvmdtkgisfmgecilqxflkkqzztpviouslxunwxnygihlijopysupfkblghus
INSERT
Connected to 192.168.50.106:10800
digaffeohkpwnrscfqozxyvumvvjtzouiracvrnicdawwqqvtnzpjmjnabaygefxrcmpughveybmsfcexkunqxgubspfjijparv
INSERT
Connected to 192.168.50.106:10800
fwxjatjrtwydyqelxfewsabzknfckdboyswymskjsljptcwuqcltxeyybsppvvvtfhvbpcnckmpcythzvtdonuzjlrrvapnycpr
INSERT
Connected to 192.168.50.106:10800
labicsolxbrzumtatjihufwiucnkgjdrhwdqlpcwqoppntgdmfpibnsdxgihejmhguzckyowqqsielzkrkazkfrvxymydrdzpdk
INSERT
Connected to 192.168.50.106:10800
shndfldkqpqnltncyiflwgvpimaesotpphjtugyvfwdverjwsvjleswdfrkvpjotrtooxalbdubtiredyihjkpfartnjlwqunkw
INSERT
Connected to 192.168.50.106:10800
gdtrdsrdplzbrcnaeekwcapeukjdxonnfmivtfrnpfhsqkpgyxykqqsfempnxxleivhadqnchuzpkpoabreczxlnrroeqodtfds
INSERT
Connected to 192.168.50.106:10800
zovdjlqqenqouhggingtmumoqjqrwnrtpgfpuvdqtacmobnzcjdudgwkkhjghgkyumdvzlikkirgkcxbvotnfirnozygvkqchsk
Traceback (most recent call last):
  File "test_insert_update.py", line 48, in <module>
    result_EXIST = ignite_client.sql(query_str='SELECT COUNT(*) FROM TEST WHERE 
ID = ?', query_args=[i])
  File "/usr/local/lib/python3.6/site-packages/pyignite/client.py", line 404, 
in sql
    raise SQLError(result.message)
pyignite.exceptions.SQLError: Failed to execute SQL query. General error: 
"java.lang.NullPointerException" [50000-197]
[dbutkovic@incumbosstest06 python]$
[dbutkovic@incumbosstest06 python]$





[15:38:03,379][SEVERE][client-connector-#67%UMBOSS%][ClientListenerNioListener] 
Failed to process client request 
[req=o.a.i.i.processors.platform.client.cache.ClientCacheSqlFieldsQueryRequest@291c5f1]
class org.apache.ignite.IgniteException: Failed to execute SQL query. General 
error: "java.lang.NullPointerException" [50000-197]
        at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.lambda$executeSelect0$1(IgniteH2Indexing.java:1414)
        at 
org.apache.ignite.internal.processors.cache.QueryCursorImpl.iter(QueryCursorImpl.java:106)
        at 
org.apache.ignite.internal.processors.cache.query.RegisteredQueryCursor.iter(RegisteredQueryCursor.java:66)
        at 
org.apache.ignite.internal.processors.cache.QueryCursorImpl.iterator(QueryCursorImpl.java:96)
        at 
org.apache.ignite.internal.processors.platform.client.cache.ClientCacheQueryCursor.iterator(ClientCacheQueryCursor.java:137)
        at 
org.apache.ignite.internal.processors.platform.client.cache.ClientCacheQueryCursor.writePage(ClientCacheQueryCursor.java:72)
        at 
org.apache.ignite.internal.processors.platform.client.cache.ClientCacheSqlFieldsQueryResponse.encode(ClientCacheSqlFieldsQueryResponse.java:74)
        at 
org.apache.ignite.internal.processors.platform.client.ClientMessageParser.encode(ClientMessageParser.java:439)
        at 
org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:210)
        at 
org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:49)
        at 
org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279)
        at 
org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
        at 
org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:97)
        at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
        at 
org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to execute 
SQL query. General error: "java.lang.NullPointerException" [50000-197]
        at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQuery(IgniteH2Indexing.java:831)
        at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQueryWithTimer(IgniteH2Indexing.java:912)
        at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing$2.iterator(IgniteH2Indexing.java:581)
        at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing$2.iterator(IgniteH2Indexing.java:558)
        at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.lambda$executeSelect0$1(IgniteH2Indexing.java:1411)
        ... 17 more
Caused by: org.h2.jdbc.JdbcSQLException: General error: 
"java.lang.NullPointerException" [50000-197]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
        at org.h2.message.DbException.get(DbException.java:168)
        at org.h2.message.DbException.convert(DbException.java:307)
        at org.h2.message.DbException.toSQLException(DbException.java:280)
        at org.h2.message.TraceObject.logAndConvert(TraceObject.java:357)
        at 
org.h2.jdbc.JdbcPreparedStatement.executeQuery(JdbcPreparedStatement.java:126)
        at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQuery(IgniteH2Indexing.java:824)
        ... 21 more
Caused by: java.lang.NullPointerException
        at 
org.apache.ignite.internal.processors.query.h2.opt.GridH2Table.unlock(GridH2Table.java:515)
        at org.h2.engine.Session.unlockAll(Session.java:991)
        at org.h2.engine.Session.endTransaction(Session.java:760)
        at org.h2.engine.Session.commit(Session.java:708)
        at org.h2.command.Command.stop(Command.java:157)
        at org.h2.command.CommandContainer.stop(CommandContainer.java:122)
        at org.h2.command.Command.executeQuery(Command.java:232)
        at 
org.h2.jdbc.JdbcPreparedStatement.executeQuery(JdbcPreparedStatement.java:114)
        ... 22 more

Attachment: Ignite_DDL_test.sql
Description: Binary data

import random
import string
from pyignite import Client


def randomString(stringLength=10):
    """Generate a random string of fixed length """
    letters = string.ascii_lowercase
    return ''.join(random.choice(letters) for i in range(stringLength))

        
nodes = [('192.168.50.106', 10800)]

ignite_client = Client(username='ignite', password='ignite', use_ssl=False)


SQL_INSERT =''' INSERT INTO 
                                TEST (ID, COL1, COL2, COL3, COL4, COL5, COL6, 
COL7, COL8, COL9, COL10, COL11, COL12) 
                                VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)
                        '''

SQL_UPDATE =''' UPDATE TEST SET 
                                        COL1 = ?, 
                                        COL2 = ?,
                                        COL3 = ?,
                                        COL4 = ?,
                                        COL5 = ?,
                                        COL6 = ?,
                                        COL7 = ?,
                                        COL8 = ?,
                                        COL9 = ?,
                                        COL10= ?,
                                        COL11= ?,
                                        COL12= ?,
                                        WHERE ID = ? 
                        ''' 

while True:

        ignite_client.connect(nodes)
        print('Connected to {}'.format(ignite_client))
        
        i = random.randint(1,100000)
                                
        random_text = randomString(99)
        print (random_text)
        arg_list=[]
        
        result_EXIST = ignite_client.sql(query_str='SELECT COUNT(*) FROM TEST 
WHERE ID = ?', query_args=[i])
                                
        for EXIST in result_EXIST:
                if EXIST[0] == 0:
                        # INSERT
                        print ("INSERT")
                        
                        arg_list.append(i)
                        for i in range(12):
                                arg_list.append(random_text)
                                

                        ignite_client.sql(query_str=SQL_INSERT, 
query_args=arg_list)
                
                else:
                        # UPDATE
                        print ("UPDATE")
                        
                        
                        for i in range(12):
                                arg_list.append(random_text)
                        
                        arg_list.append(i)
                        
                        ignite_client.sql(query_str=SQL_UPDATE, 
query_args=arg_list)


        ignite_client.close()

Reply via email to