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

Unicode string weirdness post-1.0.13 #6

Closed
timschreiner opened this issue Sep 5, 2014 · 7 comments
Closed

Unicode string weirdness post-1.0.13 #6

timschreiner opened this issue Sep 5, 2014 · 7 comments

Comments

@timschreiner
Copy link

Thanks for the awesome work! I'm running into a problem when storing unicode values (the bins are strings). Values from one bin might show up in other bins. I'll try and figure out a dataset that consistently replicates the bug, but I CAN tell you it works great in .12 and .13, but starts breaking in .14

The first time I saw it, I had a list of unique values, which when stored became a list of duplicates, hope that helps.

@cstivers78
Copy link
Contributor

Wasn't ably to take look today. I will take a look by Monday. Is the fix urgent?

@timschreiner
Copy link
Author

No, not urgent, I'm just pinning to 1.0.13 for now.

@timschreiner
Copy link
Author

I found a test case for you to try when you have time:

key = ('test','test','test')

client.remove(key)
client.put(key, {'test': [unicode('a'), unicode('b')]})
print(client.get(key)[2]['test']) #you should see [u'a', u'b']

client.remove(key)
client.put(key, {'test': [unicode('aa'), unicode('bb')]})
print(client.get(key)[2]['test']) #on my machine, I get [u'bb', u'bb']

@timschreiner
Copy link
Author

Sorry, didn't mean to bump this. I did just pull down 1.0.19 and confirm that the problem still exists.

@cstivers78
Copy link
Contributor

Sorry, I have not gotten to this one yet.

I will check it out today... but may not have a fix until tomorrow.

@cstivers78
Copy link
Contributor

I just tested the code. Looks like the the data is clobbered on the put() call, because it is stored that way in the database. Taking a deeper look.

@cstivers78
Copy link
Contributor

Released v1.0.20, with a fix. It is up on GitHub and PyPi

Commit:
4d1a321

rbotzer added a commit that referenced this issue Jan 8, 2015
dwelch-spike added a commit that referenced this issue Oct 24, 2019
* fixed OverflowError: Python int too large to convert to C long

* added large job id test

* fixed double linked list corruption error

* added query apply set detection tests

* updated test_query_apply

* refactored double free and python overflow fixes

* added test for non list udf arguments

* update c client

* check for illegal udf arguments in dictionaries

* added bytes udf test

* added py_to_val coversion for python3 bytes

* update illegal udf args exception, add stream udf tuple test

* iterative udf arg check

* removed unnecessary assignments, consistent string encoding in tests, added udf arg documentation to query.apply

* fail on 4XX response codes

https://curl.haxx.se/mail/archive-2006-02/0004.html the exit status of
curl on a 4XX response code is zero without the -f flag.

* Remove transaction queue and thread-per-queue config options

These config options were removed in server version 4.7.0
https://www.aerospike.com/download/server/notes.html#4.7.0.2

* Bitwise operations (#6)

* Initial bitwise file

* Start of bitwise ops

* Tests for bitwise beginning

* Basic bitwise testing

* Tests for resize

* bitwise remove and set

* set_bit tests, documentation, set_bit Byte_Offset fixed

* implemented bit_count

* bit_count tests

* implemented bit_add and bit_add tests

* implemented bit_and, bit_and tests

* implemented bit_get

* bit_get tests

* implemented bit_get_int and bit_get_int tests

* implemented bit_insert

* bit_insert tests

* implemented bit_lscan and bit_lscan tests

* implemented bit_lshift and lshift tests

* implemented bit_not and bit_not tests

* implemented bit_or and bit_or tests

* implemented bit_rscan and bit_rshift with tests

* implemented bit_subtract and tests

* implemented bit_xor and tests

* bit_wise documentation and tests

* update c client, fix travis config thread queue option, cleanup bit operate

* cleanup bitwise documentation, change isbitop to use range

* add bitwise helper get_uint32t_from_pyargs, refactor bitwise code and documentation

* Nested_cdt support for map and list ops. (#7)

* nested cdt groundwork and tests

* nested cdt constants

* added support for as_val based nested cdt ops, list_op nested cdt ops, and tests

* nested cdt for list ops

* nested cdt_ctx logic for all list ops, more tests for nested cdt list ops

* nested cdt ctx groundwork, nested cdt for map_get_by_key

* Remove transaction queue and thread-per-queue config options

These config options were removed in server version 4.7.0
https://www.aerospike.com/download/server/notes.html#4.7.0.2

* nested map cdt get by val and index, fixed nested cdt list tests and python cdt_ctx converter

* nested cdt map ops for all remove by rank, map size, map policy, increment, put, put items and tests

* nested cdt ops and tests for all map ops except relative ops

* nested cdt ops and tests for maps

* fix ctx error mem leak

* move ctx_operations out of operations

* sort nested_map by key_order
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants