V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  endlessroad1991  ›  全部回复第 1 页 / 共 1 页
回复总数  19
2020-06-08 00:53:25 +08:00
回复了 yzongyue 创建的主题 程序员 我也终于刷完 MIT 6.824 2020 了
@yzongyue 啊哈,你是对的。

你当时 fail 的哪个 test ?是正确性问题(两个 server 同样 index,apply 了不同的 log )还是某个 test 没能在规定时间内完成选主?
2020-05-19 03:08:37 +08:00
回复了 yzongyue 创建的主题 程序员 我也终于刷完 MIT 6.824 2020 了
"如果把 rf.startElection() inline,就不会出现这个 bug 。“

请忽略这句话。。就算把 rf.startElection() inline,在那个 function 里面,仍然还有别的 function call 。所以仍然可能被 go runtime scheduler 切换出去。所以 bug 仍然可能存在
2020-05-19 03:05:54 +08:00
回复了 yzongyue 创建的主题 程序员 我也终于刷完 MIT 6.824 2020 了
回复题主,帮你抓了个 bug 。

https://github.com/yzongyue/6.824-golabs-2020/blob/yzy/src/raft/raft_vote.go#L125 这里在 rf.changeRole()之前,应该确保 rf.role == Follower && rf.voteFor == -1 。

否则,该节点在 rf.changeRole()之前可能已经 approve 了其他节点在当前 term 的 vote request (并修改了 rf.voteFor ),然后在这里 rf.changeRole()的时候又投票给自己( rf.voteFor = rf.me )。这样该节点就会投出两个不同的票,从而可能造成当前 term 有两个不同节点成为 leader 的情况。

详细例子:假设 3 个节点 A,B,C 。
1. A 成为 candidate, 发送 vote request 给 B 。
2. B 收到 A 的 vote request 时仍然是 follower,因此批准 vote request 。
3. A 收到 B 的 approval,认为自己成为 leader 。
4. B 成为 candidate,并收到 C 的 approval,认为自己成为 leader 。

这里有一个问题是,为什么 2 之后,4 仍然可能发生?在 B 批准 A 的 vote request 时,B 重置了自己的 electionTimer: https://github.com/yzongyue/6.824-golabs-2020/blob/yzy/src/raft/raft_vote.go#L67 。所以 B 不应该再触发将自己变为 candidate 的逻辑 https://github.com/yzongyue/6.824-golabs-2020/blob/yzy/src/raft/raft.go#L415

我的理解是,2 和 4 之中,事实上先发生的是 4 ( B 触发自己变为 candidate 的逻辑 https://github.com/yzongyue/6.824-golabs-2020/blob/yzy/src/raft/raft.go#L415 )。但很不幸,在调用 rf.startElection()时,go runtime scheduler 将本 goroutine 暂停,而切换到执行 2 的 goroutine (处理 A 的 vote request )!如果把 rf.startElection() inline,就不会出现这个 bug 。这也能解释为什么这个 bug 很难复现:这依赖于 go runtime scheduler 对这些 concurrent events 的执行时机。
2020-03-28 04:17:11 +08:00
回复了 sszxcss 创建的主题 GitHub 轮到劫持 github.com 了
以后说不定就是 ip+域名访问全面白名单化。白名单之内通过 mitm 保证内容可被分析,白名单之外直接掐断😃
早年从 windows 笔记本切换到 macbook air 的感觉:

cpu 不用太强,但硬盘一定要是 ssd 或 mac 用的那种 flash。
2017-03-17 19:23:24 +08:00
回复了 2zH 创建的主题 React React 不做 SSR 如何让百度快照正确显示页面
或多或少会有执行 javascript 的能力。。

手抖
2017-03-17 19:22:48 +08:00
回复了 2zH 创建的主题 React React 不做 SSR 如何让百度快照正确显示页面
现在的搜索引擎爬虫或多或少会有 javasceipt 的能力,尤其是对排名较高的站点
2017-03-17 00:18:36 +08:00
回复了 upygad 创建的主题 程序员 插件推荐|WordPress 远程附件上传插件
@Troevil 你这么一说才发现。。 666
2016-11-16 11:45:51 +08:00
回复了 endlessroad1991 创建的主题 V2EX V 站使用 Google OAuth 登陆时 504
2016-10-24 09:20:19 +08:00
回复了 johnsneakers 创建的主题 随想 今晚,职业污点+1
一般上-Wall -Wextra -Werror ,虽然一开始觉得有些 warning 很烦,习惯了之后出类似 bug 的机会小不少。

然后还有 address sanitizer 检测非法内存访问、内存泄漏之类的, thread sanitizer 检测 data race 。
2016-10-20 16:55:52 +08:00
回复了 SeanChense 创建的主题 分享创造 自己做的清理 iCloud 垃圾邀请的小工具 [硬广]
@SeanChense 看到你其他的回复,是本地存了关键字列表?如果是这样,可以定期从服务器抓取最新的关键字列表 :-)

还可以做得更牛逼,直接存一段 javascript 代码,每次客户端从服务器把 js 抓下来跑 lol
2016-10-20 16:46:27 +08:00
回复了 SeanChense 创建的主题 分享创造 自己做的清理 iCloud 垃圾邀请的小工具 [硬广]
大赞!

如果后续有空,感觉可以把过滤规则做在服务端。一是垃圾消息可能会变,而是让每个用户自己设定规则还是有些麻烦
2016-08-04 14:14:39 +08:00
回复了 tiancaiamao 创建的主题 编程 同事非让我把代码写成这样,该怎么办?
语言貌似是 go 。

go 有 go generate ,下面那段代码可以用类似你上面那一小段来生成。
2016-04-30 00:55:08 +08:00
回复了 microchang 创建的主题 然而并没有 看完《上海堡垒》了
说得好。

以及 luyiyi 的番外篇真是败笔。
2016-03-02 13:12:54 +08:00
回复了 ahillgian 创建的主题 问与答 Google 2016 I/O 大会倒计时是怎么做的
@ziki @learnshare 同意:-)

画这些数字本身比较简单, inspect element 可以看到是用 canvas 画的,那个 canvas 元素上面的 svg 包含了 0-9 每个数字的 path ,画数字就是在 canvas 上画 path 。

至于变形,就是纯用 javascript 做的了。没有仔细跟着 debug ,看代码( https://events.google.com/io2016/elements/elements.js 26333 行, IOWA.CountdownTimer.Band.prototype.update 函数),是利用变化前、变化后每个点的位置,计算出动画过程中每个点的位置,然后修改画在 canvas 上的 path 。

颜色没啥好说的,就是 path 画的时候分了很多段,每段画的时候先设置颜色(上面那个函数里有一句: ctx.strokeStyle = lastColor )
2016-02-21 16:59:21 +08:00
回复了 isCyan 创建的主题 分享创造 Docker 一键 Google 反代镜像
赞!

不过根据以往经验,此类网址只要发出来,要么过段时间用的人太多只能关闭,要么被重点关照无法访问。。
2016-02-03 22:50:07 +08:00
回复了 wjdimba 创建的主题 Android android 上有没有好用 免费 开源的 pdf 阅读器框架
google 收购然后开源的 pdfium ?在 aosp 里,可以 build
2015-11-26 22:02:54 +08:00
回复了 codecrash 创建的主题 问与答 终端又一次崩溃了,在这样下去要泪奔了
ulimit 限制进程占用的系统资源?
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2600 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 30ms · UTC 05:31 · PVG 13:31 · LAX 21:31 · JFK 00:31
Developed with CodeLauncher
♥ Do have faith in what you're doing.