掉入神坑爬不起来了

CMGS CMGS 2015-09-15 11:52:45
白马君
2015-09-15 12:10:28 白马君 (心之所向 素履以往)

现在在暗黑的坑啦?!我颠峰100就没时间玩了

夏天的下雨天
2015-09-15 12:12:26 夏天的下雨天 (一个无趣的中年loser)

我从开荒开始,后来改版成为巅峰,就没有玩了

Ryan
2015-09-15 13:04:19 Ryan

果然教授好棒,#腦殘粉狀態#

五星村小黄
2015-09-15 13:06:23 五星村小黄 (努力工作,赚钱养家,)

周五不能乱更新,哈哈

CMGS
2015-09-15 13:18:44 CMGS (It's time to say sayonara...)
现在在暗黑的坑啦?!我颠峰100就没时间玩了 现在在暗黑的坑啦?!我颠峰100就没时间玩了 白马君

新赛季啊。。

CMGS
2015-09-15 13:19:01 CMGS (It's time to say sayonara...)
我从开荒开始,后来改版成为巅峰,就没有玩了 我从开荒开始,后来改版成为巅峰,就没有玩了 夏天的下雨天

= =老号在TW,也懒得玩了,现在都在国服

CMGS
2015-09-15 13:19:11 CMGS (It's time to say sayonara...)
果然教授好棒,#腦殘粉狀態# 果然教授好棒,#腦殘粉狀態# Ryan

是啊是啊,教授一眼就看到了!

CMGS
2015-09-15 13:19:25 CMGS (It's time to say sayonara...)
周五不能乱更新,哈哈 周五不能乱更新,哈哈 五星村小黄

好生的一个周末毁了唉- -

Davies
2015-09-15 15:35:12 Davies (hacking@DB)

看到这种不容易复现的奇怪问题,应该第一时间想到是线程安全问题

糖伴西红柿
2015-09-15 15:54:00 糖伴西红柿 (前台鸡汤解毒工程师…)

CSMG 上窜下跳一天,不如教授一句话。#喜闻乐见#

啊声
2015-09-15 17:31:00 啊声

多goroutine读写map不加锁是常犯的bug了,看第一个panic就猜到……
这个要用race detector来debug,例如下面的程序用go run -race跑,过一会就会报告data race

package main

func main() {
m := make(map[int]int)
for i := 0; i < 8; i++ {
go func() {
for {
m[1] = 1
}
}()
}
select {}
}

不只是map,基本的int之类都是线程不安全的,跨goroutine读写要加锁或者用atomic。线程安全的只有chan。

CMGS
2015-09-15 18:21:41 CMGS (It's time to say sayonara...)
多goroutine读写map不加锁是常犯的bug了,看第一个panic就猜到…… 这个要用race detector来deb 多goroutine读写map不加锁是常犯的bug了,看第一个panic就猜到…… 这个要用race detector来debug,例如下面的程序用go run -race跑,过一会就会报告data race package main func main() { m := make(map[int]int) for i := 0; i < 8; i++ { go func() { for { m[1] = 1 } }() } select {} } 不只是map,基本的int之类都是线程不安全的,跨goroutine读写要加锁或者用atomic。线程安全的只有chan。 ... 啊声

竟然有 race……

主要是扒 example 的时候人家也是那么写的,加之一直都是单核就没在意这一块……直到我膝盖被射了一键,唉你这么一说又要重新 review 代码了好心塞

CMGS
2015-09-15 18:27:17 CMGS (It's time to say sayonara...)
看到这种不容易复现的奇怪问题,应该第一时间想到是线程安全问题 看到这种不容易复现的奇怪问题,应该第一时间想到是线程安全问题 Davies

线程安全其实想到了,但一直在查上层函数,看 info 的生命周期和读写是否安全,忘记改完 nsenter 之后最底层的一个函数还保留了一个 goroutine,好心塞T.T


CMGS
CMGS (湖南长沙)

blog地址:cmgs.me Worked@Douban Working@Changsha Geek 攻城师 独立驴...

CMGS的最新日记  · · · · · ·  ( 全部 )

热门话题  · · · · · ·  ( 去话题广场 )

推荐这篇日记的豆列  · · · · · ·  ( 全部 )