[storm] what causes: storm.exceptions.LostObjectError: Can't obtain values from the database

Steve Kieu msh.computing at gmail.com
Thu Jan 6 23:19:01 UTC 2011


I have thought about a case - if the compose primary key is *not* actually
unique in the db it may cause the problem

so I will try your idea tonight (I am at work now ) to see if it gets fixed,
probably have to change the logic there )

Thanks


On Fri, Jan 7, 2011 at 9:13 AM, Steve Kieu <msh.computing at gmail.com> wrote:

> I think (from reading storm doc somewhere) I can use a unique compose key
> to tell storm that it can be used as primary tuple in get function. In fact
> I used this in various other scripts which runs fine.
>
> If this is the problem it does not explain why everything is working - that
> is I can print out all Product, etc inside the find tuple - I can even
> create new record for the ProductDiscountHistory fine. Bad thing *only*
> happen when I change the product_discount_id of the Product to use the new
> discount.
>
> I tried to use find in getone method - no change
>
> Tried to invalidate the pt  after saving the id key, then get the Product
> using that id key and change its product_discount_id, - no change
>
> Enable DEBUG in storm and does not print any usefull information - just the
> last SQL statement as normal and boom - error
>
> Nevertheless I will try your suggestion tonight but I strongly believe it
> does not solve the problem. It happens with both python version 2.7.1 and
> Ubuntu lucid stock python (2.6.x) so unlikely it is python GC problem
>
>
>
> Cheers,
>
>
>
>
> On Fri, Jan 7, 2011 at 6:00 AM, Gerdus van Zyl <gerdusvanzyl at gmail.com>wrote:
>
>> in ProductDiscount
>> you have both:
>> __storm_primary__ = 'amount', 'is_percent', 'start_date'
>> and
>> id = Int(name='discount_id', primary=True)
>>
>> I don't think that you can have two definition of the primary key that are
>> different;
>>
>> and then in ProductDiscount.getone
>> you use
>> one = store.get(ProductDiscount, (amount, is_percent, start_date) )
>> according to me you need to use find
>>
>>
>> On Thu, Jan 6, 2011 at 3:12 PM, Steve Kieu <msh.computing at gmail.com>wrote:
>>
>>> Hello,
>>>
>>> I have a simple script (attached to this email )- and evrytime I run, i
>>> got
>>>
>>>
>>> stevek at lenovo:~/hang-hieu-uc/python$ python bulk_price_update.py
>>> Number of record: 202
>>> /usr/lib/python2.6/dist-packages/storm/database.py:342: Warning: Data
>>> truncated for column 'amount' at row 1
>>>   return function(*args, **kwargs)
>>> Traceback (most recent call last):
>>>   File "bulk_price_update.py", line 137, in <module>
>>>     process()
>>>   File "bulk_price_update.py", line 129, in process
>>>     new_pt.product_discount_id = new_pd.id; store.flush()
>>>   File "/usr/lib/python2.6/dist-packages/storm/properties.py", line 60,
>>> in __get__
>>>     return obj_info.variables[column].get()
>>>   File "/usr/lib/python2.6/dist-packages/storm/variables.py", line 178,
>>> in get
>>>     self.event.emit("resolve-lazy-value", self, self._lazy_value)
>>>   File "/usr/lib/python2.6/dist-packages/storm/event.py", line 53, in
>>> emit
>>>     if callback(owner, *(args+data)) is False:
>>>   File "/usr/lib/python2.6/dist-packages/storm/store.py", line 891, in
>>> _resolve_lazy_value
>>>     result, result.get_one())
>>>   File "/usr/lib/python2.6/dist-packages/storm/store.py", line 746, in
>>> _set_values
>>>     raise LostObjectError("Can't obtain values from the database "
>>> storm.exceptions.LostObjectError: Can't obtain values from the database
>>> (object got removed?)
>>>
>>> I am stuck at new idea to fix it, please help
>>>
>>> If I do not modify the product_discount_id of a product then it printed
>>> values fine and create in the history table fine. First I directly modify
>>> the  pt object, but then try to get a product again using pt.id, however
>>> it does not help in both cases.
>>>
>>> The DB is VirutalMart DB if it helps
>>>
>>> Many thanks in advance
>>>
>>>
>>>
>>> --
>>> Steve Kieu
>>>
>>> --
>>> storm mailing list
>>> storm at lists.canonical.com
>>> Modify settings or unsubscribe at:
>>> https://lists.ubuntu.com/mailman/listinfo/storm
>>>
>>>
>>
>>
>> --
>> Gerdus van Zyl
>> http://about.me/gerdus
>>
>
>
>
> --
> Steve Kieu
>



-- 
Steve Kieu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/storm/attachments/20110107/4dfceec4/attachment.html>


More information about the storm mailing list