2
bjshdq OP 可是为什么我的头像又没了~~~
|
3
Danny 2011-12-19 12:02:14 +08:00
头像一样?
|
4
Livid MOD |
5
bjshdq OP 为什么我又变成 bjshdq 了。
啊啊~~ |
7
bjshdq OP 又变回来了~~
|
10
Livid MOD 这简直可以启发我去写一部科幻电影的脚本了。
在一个类似 Matrix 的世界里,由于程序上的一个错误,两个不同的人具有了同一个 ID,然后…… |
12
bjshdq OP |
13
c 2011-12-19 12:08:29 +08:00
这样也蛮好啊。。
|
15
Livid MOD |
16
JTR 2011-12-19 12:50:40 +08:00
我就是你
sounds cool |
17
badec 2011-12-19 13:01:25 +08:00
笑点低,看到这个我笑了
|
21
Los 2011-12-19 14:11:42 +08:00
@Livid 为什么不直接说明是 PB2 的代码问题呢?这个跟 GAE 的 datastore 问题不大吧?好吧,我曾经看过 PB2 的代码。。。
|
23
Los 2011-12-19 14:37:53 +08:00
@willerce 主要的问题在于以下这段代码,自生成ID,但自生成 id 时却没有任何的安全机制,比如用事务保证自生成 id 的唯一性
https://github.com/livid/v2ex/blob/master/main.py#L520 member = Member() q = db.GqlQuery('SELECT * FROM Counter WHERE name = :1', 'member.max') if (q.count() == 1): counter = q[0] counter.value = counter.value + 1 else: counter = Counter() counter.name = 'member.max' counter.value = 1 q2 = db.GqlQuery('SELECT * FROM Counter WHERE name = :1', 'member.total') if (q2.count() == 1): counter2 = q2[0] counter2.value = counter2.value + 1 else: counter2 = Counter() counter2.name = 'member.total' counter2.value = 1 member.num = counter.value |
24
Los 2011-12-19 14:38:33 +08:00
|
25
soulhacker 2011-12-19 14:51:51 +08:00
@Livid will be a epic story!
|