V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cwcc
V2EX  ›  PHP

才看到 PHP 协程扩展 Swoole 去年的时候发生的分支事故

  •  
  •   cwcc · 2022-05-14 22:30:52 +08:00 · 4591 次点击
    这是一个创建于 684 天前的主题,其中的信息可能已经有所发展或是发生改变。
    https://github.com/swoole/swoole-src/issues/4434

    具体原因好像是因为核心开发者添加了一个可以 RCE 的 Dashboard ,然后被覆盖关闭,此外又和另一个核心开发者起了权限的冲突,最后导致一位成员成立分支 openswoole ,现在两个仓库滚动的版本号都不一致了,而且某些代码从使用上来说不再相互兼容。

    出现这种情况感觉挺悲哀的,本来 PHP 生态就进展缓慢,现在好不容易有一个强心针 swoole ,结果也因为开发者的原因导致了分家的情况。

    我作为一个 Swoole 框架的开发者和 PHP 部分生态的依赖者,看完这次虽然不是很影响我的进程,但是很影响我对 PHP 社区未来的看法。虽然我已经给 PHP Foundation 捐款,但现在也没看到什么巨大的成效。还有 PHP 大会说是 2022 在 RU 举行,估计现在也没法开了。
    24 条回复    2022-05-31 15:17:42 +08:00
    terranboy
        1
    terranboy  
       2022-05-14 22:41:07 +08:00
    看那作者 应该是可以约见的事
    terranboy
        2
    terranboy  
       2022-05-14 22:41:30 +08:00
    @terranboy 预见
    Stevenv
        3
    Stevenv  
       2022-05-14 23:03:19 +08:00 via iPhone
    这个框架故事太多
    BruceHong
        4
    BruceHong  
       2022-05-14 23:11:28 +08:00
    没有必要,换 Go 就行,时代在发展,该淘汰还是要淘汰。
    panlatent
        5
    panlatent  
       2022-05-14 23:17:44 +08:00
    在我的印象里都好像是老早之前的事了。PHP 怎么说呢,实用为主,你说的这个事跟 PHP 其实关系不大,类似这种库发展起来还是相对有限,生态方面不是一个 Swoole 的问题。历史包袱,领域受限,早年的设计问题
    ... 但所有老语言为了保持兼容也都有各种历史包袱,推陈出新也不奇怪。

    以社区驱动的 PHP 还是在不断的变好的,但也很难在其他赛道超车了。我也是 PHP 基金会的捐助者,PHp 基金会最直接的目的是为了帮助 PHP 内核开发者,短期肯定是见不到啥成效,未来 ... 未来可期吧
    jhdxr
        6
    jhdxr  
       2022-05-14 23:45:08 +08:00
    At this stage, all the member's releases have to use matyhtf's PECL account which is ridiculous for a project contributed by a group of people.

    我很震惊难道在此之前是几乎没有(以 21 年 18 次的发布次数来看,我心中的几乎没有指的是一次或更少)其他成员去执行发布这个操作吗?如果有的话,居然没有人提出过异议吗?还是说只是也被忽略了?(但哪怕没人提过,我也认为作为唯一的 lead ,韩应该意识到这是个问题并且给自己找一个 backup (于是我去翻了翻 contributor ,更震惊的发现了如果我是韩,我也选不出一个 backup 来))


    再回到这次事情的起因上,我也是强烈反对在 core 里边加上一个对外部网站的依赖,无论那个网站是否是商业性质的(而且刚才试了试 business.swoole.com 这个域名还直接因为没备案给 block 了?)。然后 Bruce 指责韩尽管承诺解决,但直到 fork 前都没有实质行动,那个总结的 comment 中并没有提及 introduce 这个 change 的 commit ,所以我去挖了一下,https://github.com/swoole/swoole-src/commit/73372ad07720f3f024d8b86b50d2e96dc9b6c1de 。从 8 号提交,到 14 号(冲突后)删除,其实只有 6 天,尽管是 master 分支,但考虑到没 release 其实我觉得这个时间并不算久。但还是有两个我觉得有问题的点,第一个是刚才发的这个引入这段代码的 commit ,commit message ( Added tests, improved server stats_file, fix core-tests )中完全没有提及这一点,甚至可以说是将本应是好几个 commit 的文件放到了一个里来提交,至少让我觉得有点想浑水摸鱼。第二个是在 14 号就直接 release 了新版,我也很好奇如果这场撕逼不发生,这段代码是不是就顺势 release 了?


    至于对 php 未来的看法,船大难掉头吧。现在的新版更多的是各种语法糖和小修小补,大的一些变更(比如异步 IO )之类的应该是有生之年都没希望了(这种大的变更 php-internal 时不时都会冒出来相关的讨论,但有一些特性我已经成功地被说服成不要添加那一派了)。web 开发基本上也是小的网站用啥都行,大的也轮不到动态语言。php 应付中小型的网站已经绰绰有余了。
    cwcc
        7
    cwcc  
    OP
       2022-05-15 00:33:05 +08:00
    @jhdxr 感觉就是发布版本时候没有利用 review 机制监督,再加上发布 pecl 帐号共用的事情,感觉管理得不是很好,Swoole 本来应该做得更好的。
    mxalbert1996
        8
    mxalbert1996  
       2022-05-15 00:44:28 +08:00 via Android
    @jhdxr 这句话是说其他成员发布的时候都需要用 matyhtf 的帐号
    ericgui
        9
    ericgui  
       2022-05-15 02:19:52 +08:00
    这是好事啊
    ToBeHacker
        10
    ToBeHacker  
       2022-05-15 03:35:15 +08:00
    异步可不是加上 libuv 就兴趣,所有的 IO 操作都需要支持,目前也就 golang 做得还行了
    jhdxr
        11
    jhdxr  
       2022-05-15 03:37:46 +08:00
    @mxalbert1996 是啊,我就是这么理解的(我说的什么话让你误解为理解成别的意思了?)


    @cwcc 我觉得不仅是『不是很好』,而是『是很不好』。之前在商业化的过程中韩已经不止一次有被批评过激的行为了,但看了 contributor 的统计后我也不奇怪了。因为韩的代码量的确是压倒性的。
    Alan1978
        12
    Alan1978  
       2022-05-15 07:39:09 +08:00 via Android
    Swoole 娱乐圈
    JaguarJack
        13
    JaguarJack  
       2022-05-15 08:17:22 +08:00 via iPhone
    只能说 swoole 作者功利心太强
    pangpre
        14
    pangpre  
       2022-05-15 09:23:18 +08:00 via iPhone
    在用 webman 代码不用改 直接翻几倍的性能,性能测试比 go 还牛。 这算 php 唯一的清流和希望了。

    swoole 吃相有点难看了,php 半死不活的,有一半原因是他们瞎搞……swoole_cli 如果还这样 就彻底放弃他们了
    towser
        15
    towser  
       2022-05-15 11:25:28 +08:00
    应用容器用 workman 就行,性能好,功能全。另一个项目频出公关事故,不适合用于长期项目。
    cwcc
        16
    cwcc  
    OP
       2022-05-15 15:21:21 +08:00
    我个人使用过 Workerman ,感觉性能是很强,但是里面的东西非常不组件化,想要改些东西只能重写一整个文件,而且还不是 PSR 规格的。Swoole 做得还算可以,有啥用啥,但是作者搞的每次操作非常迷。
    @towser
    liuxu
        17
    liuxu  
       2022-05-15 16:17:06 +08:00
    行走在荒野之上的 rustman 路过
    cszchen
        18
    cszchen  
       2022-05-15 19:15:57 +08:00 via iPhone
    PHP 是我主要使用的语言,但是我不建议用 swoole ,需要它的场景都能用 go 或者 node 替代,如果需要跟 PHP 互动,就暴露 Api
    sagaxu
        19
    sagaxu  
       2022-05-20 20:32:31 +08:00
    赚钱不寒碜,但是藏的不够深,被发现了

    1. 尝试过推 swoole 收费版,性能更强,被吐槽了,说是拿商业版做小白鼠测试,稳定了 merge 进开源版。
    2. 韩天峰撇清,称郭新华的商业公司行为,结果一看股权结构,韩天峰是绝对控股的大股东。
    3. 官方推荐 hyperf 时,存在明显对其它基于 swoole 的框架不公的情况,接着撕逼。
    4. php fibers 投票的时候,拉拢中国有投票权的人投反对票,实名投的票,藏不住。
    5. Dashboard 事件,震惊社区,这么偷偷塞 RCE 进去真的合适吗?
    cwcc
        20
    cwcc  
    OP
       2022-05-20 21:41:14 +08:00
    @sagaxu

    1. Swoole 收费版确实非常需要吐槽,这很明显想赚钱想多了。
    2. 商业关系内部人士,外面都显得很明显了也不多说。
    3. 部分其他 Swoole 框架也存在生态建设排挤的情况,不是少数,不仅限 hyperf 。
    4. Fibers 投票应该是立场不同,因为抛开 Swoole 作者立场,Swoole 本身和 PHP Fibers 理念会有冲突,是两个派的做法( Swoole 和 swow 是 hook 派,官方对 Hook 底层的操作应该比较排斥,所以主推了 Amphp 系的 fibers )。
    5. Dashboard 事件没掀起大的波澜,但是我现在至少知道使用第三方非并入主线的扩展,包括 Composer 依赖,也并不比 npm 被投毒的概率小。
    lap510200
        21
    lap510200  
       2022-05-25 16:37:59 +08:00
    @cwcc 吹 swoole 的那帮人就是带节奏的,就没看到多少公司项目在用,有这成本的为了生态全使用方便干嘛不上 java. 喜欢折腾追新干嘛不搞 go
    liuyibao
        22
    liuyibao  
       2022-05-29 12:26:09 +08:00
    @cszchen 赞一个
    cszchen
        23
    cszchen  
       2022-05-31 14:38:56 +08:00
    @lap510200 还真有公司用,面试的时候考我。还有用 swoole 的嘲讽我,我说太初级搞不懂协程,才回想着用 Go 去解决,因为 Go 门槛低。。。
    lap510200
        24
    lap510200  
       2022-05-31 15:17:42 +08:00
    @cszchen 如果是小公司那估计就是装了。小公司哪有那么牛逼的 To c 项目, 而大公司用 hyperf 还不如 spring 直接搞微服务, java 生态更好,现成的轮子和解决方案多,招到对应的人更容易
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2940 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 15:15 · PVG 23:15 · LAX 08:15 · JFK 11:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.