New submission from Adria Garriga:

I create several objects in the main thread, and then spawn several threads 
that "take ownership" of one object each. Within that thread, the objects' 
attributes' values are not consistent. The bug only happens sometimes.

from threading import Thread
import pdb
n_threads = 8

def f(self):
    self.obj[0] = 0
    t = 0
    while True:
        if t != self.obj[0]:
            pdb.set_trace() # should not happen
        t += 1
        self.obj[0] += 1

for _ in range(n_threads):
    t = Thread(target=lambda: f(t))
    t.obj = [0]
    t.start()


Tested in Python 2.7.11 under Ubuntu 16.04 LTS and OS X. The bug does not 
happen in Python 3.5 or Python 3.6 .

Attached is a very similar program that exhibits the same issue, but which may 
be clearer and can sometimes be killed with Ctrl-C.

----------
components: Library (Lib)
files: test.py
messages: 269988
nosy: Adria Garriga
priority: normal
severity: normal
status: open
title: Erroneous memory behaviour for objects created in another thread
type: behavior
versions: Python 2.7
Added file: http://bugs.python.org/file43663/test.py

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue27468>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to