![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
mzhan017
小张
展开
-
clang的gcc影子
上面两个选项的文档,需要到gcc的使用手册里找。专门找llvm/clang的文档,可能找不到相应的解释说明。原创 2024-07-13 10:10:46 · 117 阅读 · 0 评论 -
[程序员] gnu: binutils:addr2line 结果显示很多问号?
这个问题的原因是说这个二进制文件的编译/链接版本和当前使用的addr2line所属的binutils版本有差别,导致内容解析出现问题。所以在使用addr2line的时候一定要注意,不是说只要系统里addrline这个命令,就可以了,还需要看当前addr2line的版本是否对应二进制文件的编译链接使用的binutils版本,如果兼容就可以正确的解析调试信息,如果不兼容就会出现标题中的问题。之前总结过addr2line的一个问题:gnu:binutils: addr2line显示行号有问题?原创 2024-07-06 06:16:02 · 490 阅读 · 0 评论 -
[开源软件] 支持链接汇总
只要是使用的第三方软件是Redhat提供的rpm包,就就可以在这里提问题。原创 2024-07-02 22:08:22 · 293 阅读 · 0 评论 -
每日疑问,多线程场景,下面的代码是否可以保证只执行一次
看着这个代码的目的是只注册一次sighandler,但是这个判定是否可以保证一次?但是根据代码看,其实不会有关键区的读写,所以即使有同步问题,也不会产生什么特别的影响。所以代码没有问题,但是这是一个坑。原创 2024-06-30 20:34:52 · 184 阅读 · 0 评论 -
[晕事]今天做了件晕事40 问题环境的保持
这就是做的比较晕的事情。有问题就应该在有问题的环境做debug,而且是非常仔细的检查。而不是想着倒回去,作比较,这样会破坏有问题的环境。今天办了一件晕事,同事在做升级测试的时候遇到一个网络不通的问题,经粗略查看,应该是网络问题,路由器没有回复ARP的reply。一交流,好像是没有别的好办法,就做了降级,看看之前的状态。升降级的操作比较费事。结果尴尬了,降回去就没问题了。原创 2024-06-29 04:52:15 · 107 阅读 · 0 评论 -
每日疑问: 为什么intel网卡的问题,而要找服务器厂商
但是intel的技术支持,却让找Cisco的组装厂商?这个是什么业务逻辑?Cisco和intel还有支持协议关系?比如下面这个链接里说看到Linux服务器的内核日志,看到i40e打了一个错误日志。原创 2024-06-27 18:14:56 · 117 阅读 · 0 评论 -
[尴尬] 撬键盘,蹦出头皮屑
这两天发现,使用的Thinkpad T14笔记本,键盘上有四个键失灵“R/T/4/6”,怎么点都不出来。才刚刚过三年质保期。不得不说运气太寸了,质保刚过,键盘就失灵了!没办法,公司IT说可以找厂家外修,但是需要费用。或者内修,在库房找一个旧的笔记本,换一下键盘。那就内修吧,节省一些成本。修电脑的是一个大姐,拿起螺丝刀开始撬笔记本的键盘,在哪里撬呀撬,蹦的键盘满是头皮屑,和碎头发/胡渣!原创 2024-06-24 17:00:01 · 476 阅读 · 0 评论 -
[程序员] 外企工作的英语重要性
这样一解释,问题就十分的明显,就是进入本地的包,没有通过IPsec的完整性校验,那么问题的下一步就是要看为什么校验失败,是对方发的数据有问题?因为在工作中,英语是非常重要的一门基础技术,所有的产品代码/第三方开源软件都是英语书写,包括代码逻辑,变量/函数/类定义,注释描述,日志打印,文档的书写;即使这些渠道都没有,(以现代的网络发展,我觉着不可能,词典肯定是有,网络搜索引擎肯定是有,大模型肯定是有),所以猜也要猜个出来,就看上不上心了!作为一名程序员,英语的必备性是不可或缺,尤其是在一个外企!原创 2024-06-22 08:08:05 · 178 阅读 · 0 评论 -
[程序员] 表达的能力
但是调用temp.h文件中的函数A()是这样写的,功能是判断是不是宏定义了CC,如果宏定义了就返回true否则返回false。后来通过深入交流,发现这个文件名称是开源库里的,所以根本就不需要例如,直接写开源库文件名就好了,不需要temp的举例。最近在工作中也是遇到一例,如果是开问题单,分析的人当然是希望可以看到稍微具体点的测试基本步骤,如果这个没有,而只是给出大体的步骤和现象,那就需要自己从日志里巴拉巴拉,或者和测试人员再深入交流一下。原因之二是,答题人的知识盲区,也是理解问题的一个关键。原创 2024-06-22 08:07:49 · 479 阅读 · 0 评论 -
[程序员] openstack: openvswitch: firewall丢包
这也算是正常,网络丢包是再正常不过的普遍问题,尤其是在云平台里的虚拟网络里。而且里面有提到一个绕过的方法是,如果在TCP的包,就可以在TCP的包里添加一个timestamp的选项,这个包就不会丢了,因为包的大小增加了。还是第一次看到,timestamps选项还可以用来故意增加包的大小,来绕过一个问题。从上面的描述,大体可以猜到这个openvswitch提供的firewall的功能有问题。最近看到一个老问题:说openvswitch提供的防火墙策略,会导致网络性能下降,而且有丢包。原创 2024-06-16 09:48:35 · 184 阅读 · 0 评论 -
[晕事]今天做了件晕事36 函数A明明调用了B,但是在汇编里却找不到,static优化
这个迷惑的原因是,gcc的优化对dump_one_gcov这个函数调用进行优化。因为这个函数 静态的,而且只被一个地方调用。gcc会将dump_one_gcov做inline处理,可以省去函数调用的过程,也算是一个优化。最近看gcov的一个问题,在分析二进制文件和源代码的时候发现,这个函数体明明不是很大,但是汇编内容确实巨量。占到~5000个字节。而且这里明明调用了dump_one_gcov,却找不到相关的汇编代码。这个时候还是会纳闷,怎么回事?原创 2024-06-06 04:47:16 · 145 阅读 · 0 评论 -
[程序员] 最近的感悟,错误处理占大头?
就是一个很好的说明,这里就是一个非常极端的例子,收发两端的buff都满了,这种情况出现的概率非常低;但是这种不合理,又没有什么好的正向解决的方法(或者是一直不close,慢慢等buff清空,但是又要考虑是否有安全问题),导致最终的解决方法是不确定的,需要根据具体的需求,具体实现!所以即使在研发内部已经预想到了很多的异常可能,加了很多的异常代码,但是保不住还有没有想到的异常在客户现场等着你!即使想到了某种异常,而加了异常处理代码,到了现场,或许会因为异常处理代码的加入,而引入其他的问题。原创 2024-05-24 20:04:34 · 755 阅读 · 0 评论 -
[杂谈] 新型狼来了
当被整蛊的这些人,在一次次的狼来了,而狼没有真的来的时候,会放松警惕。还有很多危险的视频,比如虽然在屏幕上写着“危险动作,请勿模仿”四个字,但是如果对于不认识字的小朋友,或者外国人,他们应该怎么区分是不是危险的动作。虽然说是下意识的反应,但是如果这种下意识的情况变多,应该也会导致惯性作用。说人类的大脑有一部分是属于硬件即时反应的区域,可以控制在某种情况下的反应(下意识反应):僵住,跳跃,还是反击。比如,混在行人中,突然做闪躲的动作,会导致附近的行人,也会下意识的做闪躲的动作。是时候,对这种行为进行反击了!原创 2024-05-21 19:32:33 · 478 阅读 · 0 评论 -
[晕事]今天做了件晕事34 ssh 登陆需要加端口?
所以有时候ssh登陆不能省略登陆端口。用默认的22端口可能会有问题。这个事情也是第一次遇到,说有一天机器,开了两个ssh登陆的端口。两个端口开的功能不一样,应该是根据配置做的权限管理。原创 2024-05-17 14:49:36 · 426 阅读 · 0 评论 -
[晕事]今天做了件晕事32, strings可执行文件没有找到期望的字符串
原因竟然是这个字符串在二进制文件所依赖的一个库里,所以只是strings这个二进制文件是不行的,需要找到具体是在哪一个库文件里,这个时候就需要实用ldd命令查看是有哪些个依赖库,并依次找一找。但是今天通过strace查看,肯定是在代码/二进制文件里有某个字符串存在。那为什么就是搜不到这个字符串呢?stings这个命令可以查看到可执行文件里的一些代码里定义的字符串信息。所以动态库的分离,会导致这种问题的出现,意识里需要增强一下这个分离的事实。但是用strings就是看不到,思索了一下。原创 2024-05-15 08:25:13 · 360 阅读 · 0 评论 -
Openstack: live-migration SRIOV的一个问题(1)
经过认真分析,明确了,自己产品里的一个内核模块是会将net_device的refcount的值hold一下,因为要用net_device的指针。这个函数就非常的具有滑稽性,如果调用,而且可以找到相应的设备,就会dev_hold设备;问题是在live-migration的过程中nova的调用链里,会将原有instance的设备detach掉,在detach的时候,没有设置udev规则来删除这个内核模块,导致这个内核模块对net_device一直有占用refcount,从而产生这个错误日志。原创 2024-04-30 21:18:52 · 509 阅读 · 0 评论 -
[晕事]今天做了件晕事31, gre 抓到半边
问题与现象,单独在gre tunnel的虚拟网络接口上用tshark抓包,只抓到半边,进来的包;一开始怀疑是tshark的问题,后来换了tcpdump,还是抓到半边。如果确定tcpdump抓包肯定能抓到,而没有抓到的时候,可以使用-i any试一试。最后终于在其他的接口上找到了另一半包,进来的是在这个gre tunnel,出去的时候换成了另一个gre tunnel,是路由设置的问题。再后来就是怀疑,gre的实现就是这样的?翻看了代码感觉也是不可能。原创 2024-04-26 05:37:29 · 496 阅读 · 0 评论 -
[晕事]今天做了件晕事30, perf
今天做了一件晕事,使用perf dump相同应用程序的两个进程,相当于两个进程完成的任务是一样的,处理的业务是一样的。而且这两个进程是运行在两个不同的cpu上。但是dump出来的数据里,一个有inet_csk_bind_conflict函数调用,占比比较高;思维发散的危害之一,就是不够专注!如果手头有代码,就是需要看代码逻辑,确认一下再考虑是系统内核的调度问题。一开始还要以为这个是内核将系统调用调度到了其他CPU,找了半天也没有找到相关的设计。其实不是调度问题,而是内核里代码逻辑上有些区别。原创 2024-04-26 05:36:41 · 246 阅读 · 0 评论 -
Linux: signal: SIGTERM信号对线程的影响
这个sigterm信号只影响调用sigaction (SIGTERM, &act, NULL)函数调用的线程。和这个程序关联的其他线程还是照样运行,不受影响。但是如果再发送第二个sigterm,可能影响到其他子线程的运行。在SIGTERM的handler里调用pthread_create依然可以创建出新的线程。而且这个新线程可以正常运行。原创 2024-04-24 19:26:23 · 199 阅读 · 0 评论 -
[杂谈] [杂谈]老实人要突破的想法,显眼包?
在牛首山的坑里,每个人都要戴鞋套,小朋友走到半路,发现有一只鞋套形成半挂状态;他说不行,脱了,就变“显眼包”了!再说谁会看你的脚,大家都花了钱在看佛,还要专门盯着你这个显眼包看?这个也很好理解,如果拿着杆子打了,但没有打到枣,不就是一个显眼包了。这个“显眼性”的芥蒂也可以很好的破除,因为这打枣后,有枣的机率要比实际买彩票中奖的机率更大!这理注意,同时也要有识别骗术的能力,不要一股脑啥都打!前些天说敢优于不敢,因为“敢”了,才能做起来,然后才能有更多的经验“敢”起来,而且能成功!鼓励大家脱去显眼包的束缚!原创 2024-04-24 19:19:36 · 360 阅读 · 0 评论 -
Network: wirehark: 解包问题:乱序重组
如果一个大的TCP数据被分成几个segment,而每个segment如果走的路由途径不同的化,会导致下面这个解析上错误。从下面这个图里看,第一片和第二片的顺序的,但是第三片跑到了第二片的前面,wirehark就解析不出来了,会标记为:TCP previous segment not captured和TCP Fast Retransmission,两个错误。这个时候如果使用reassemble out-of-order segments。原创 2024-04-19 12:54:07 · 561 阅读 · 0 评论 -
[算法] 动态规划
这里的动态是指每一次的计算结果会影响下一次,或者再次的运算效率,也就是说下一次的运算已经被上一次的计算影响,在计算的过程上发生了改动;这里的后一个单词是programming,为什么要翻译为动态规划?但是也要看它的二般意思:规划,计划;这个算法的本质是根据题目先设计出一张表来记录每一次的计算结果;不管这张表是一维的还是二维,三维,四维,总之是要记录下来,以便再次(注意不一定只有下一次用)。对这个算法的原有印象就是非常难理解,而且怎么都感觉这个算法名称有些误导;感觉这个算法是不是叫:有记忆的算法更好一点?原创 2024-04-19 06:44:28 · 438 阅读 · 0 评论 -
Linux: 性能: sysctl vs echo vs直接使用fopen
在实际的生产中,需要对系统参数做修改,有两种方式可以实现,一个是sysctl命令来修改,一个是使用echo 命令来写入。这个对比也是相当的明显,echo要比sysctl的轻便些;因为sysctl的依赖库更多,需要加载的so也就多。原创 2024-04-17 21:54:41 · 336 阅读 · 0 评论 -
[杂谈] 讲解器的丢失一例
所以遇到问题,分析原因改善流程的过程,才是一个好的反馈过程。就是需要总结方法,关于这个问题,我想到的方法就是为每个讲解器进行编号,贴上标签,然后再按照家庭单位分发,然后才能体现清晰的设备管理,与责任,应该可以帮助解决此类问题。最近去旅游,是团体游,因为大多是文物古迹,需要导游给讲解,如果是外放,可能影响其他游人,所以使用了一种蓝牙无线的讲解器,每人一个。现在看,根据当时的讲解器的分发管理流程,丢失是不可避免。所以当下一次,我们发现这样类似的情况的时候,要及时的提出自己的建议,让此类丢的可能性减小到最低!原创 2024-04-17 06:48:15 · 204 阅读 · 0 评论 -
Linux: network: icmp with unreachable - admin prohibited filter
这个时候就想不明白了,只能到网上找线索,果不其然,iptables的功能被firewalld的功能给污染了,无法通过iptables来判断规则。而且下一次遇到的时候,还需要使用nft list ruleset 的命令来查看netfilter的规则,而不是用iptables。因为前者更具有普遍性。man ip-rule 里的相关说明,可以从这里看到ip-rule的设置,也可以达到相同的icmp的错误。下面进入debug,这种一看就应该是iptables给拒掉了,然后返回的这个错误码。原创 2024-04-16 18:47:05 · 681 阅读 · 0 评论 -
[旅游] 景区排队上厕所
人有三急,急中最急是上个厕所要排队,而且人还不少!这样就需要做一个提前量的预测,万一提前量的预测,搞得不当,非得憋出膀光炎,或者尿裤子。人多是其中的一个因素,因为景区肯定是希望人多,人多才会生意红火;记得有次短期游南京,好几个古街景点,女生上个厕所要排上十几个号。儿童也是要等,等不及就是要去犄角旮旯的早坪,解决问题。奇怪的还有一个例子,竟然有在厕所旁边开饮料店,你说他排上十几个号,才出厕所来,再买饮料的几率是多少?我觉的,他应该巴不得一晩上都不喝饮料,避开这倒霉的上厕所可能性!原创 2024-04-14 19:59:51 · 474 阅读 · 0 评论 -
Linux: network:socket: inet_csk_bind_conflict相关的一个改进建议
内核在分配临时端口的时候,会使用一个hash bucket存放同一端口,在reuse的情况下所有socket,以便做conflict检查。在下一次选择端口的时候,会做根据fastreuse的情况,来判断是否做conflict检查。其实可以加一个内核参数来控制,在选择下一个临时端口的时候,是否要找hash bucket已经存在的端口,如果设置不找,就跳过存在于这些hashbucket里的端口,直接走到下一个端口。可以解决缓解避免上面fastreuse被污染的情况。原创 2024-04-03 08:53:58 · 419 阅读 · 0 评论 -
Linux: module: dump_pagetables: Unknown symbol init_top_pgt (err 0)
在从源码上看,这个符合init_top_pgt,没有使用EXPORT_SYMBOL_GPL,到处,其他模块用的时候会出现错误。哪这个dump_pagetables模块没有编译进来,即使后续编译没有错误,也会导致insert mod 出现错误。原有是在编译内核模块的时候,编译出来的符号 init_top_pgt是undefined。原创 2024-04-01 21:20:03 · 340 阅读 · 0 评论 -
CSDN问答区的治理建议
第二,很多问题不是技术人要回答的,比如新用户来的过来了的问题,有些就是大学生作业。其实这些作业需要他们自己先做,然后碰到问题再来问问,而不是直接上作业。如果是这样的问题也鼓励,他们其实更应该上作业帮。或者再单独开发出来一套作业帮的功能在CSDN里。第一,不要用“卷”的方式鼓励大家解答,搞一个前三名分的多,这种既然下线,以后都不要再出来了。因为你答的多,我要比你答的更多的方式来赢得前三。这就造就了一种卷的实感出来。建议只是建议,而且是个人的,只是适于参考。原创 2024-03-31 06:23:41 · 227 阅读 · 0 评论 -
Linux: code: 奇怪的名称:sk_reuseport_cb, cb?
今天看代码发现上面这一句,里面定义了一个sock_reuseport结构体类型变量,名字是sk_reuseport_cb。这里的cb是什么意思呢?还以为是一个函数调用,callback呢!定义里的注释是:reuseport group container。原创 2024-03-30 14:18:12 · 288 阅读 · 0 评论 -
[晕事]今天做了件晕事29;iptables
今天办了一件晕事,主机之间做ping用tcpdump抓到了ping request,但是没有看到ping reply,查看主机的arp表,路由表都没有问题,忘记看iptables的规则。虽然在tcpdump看到包,只是代表包到了二层,并不能保证包到了三层。可以通过下面这个命令查看 reject的统计信息。而且需要注意dpdk可能产生的影响。原创 2024-03-27 21:53:20 · 468 阅读 · 0 评论 -
[杂谈] 三省吾身
而这名同事这几天一直没有仔细的查看这个字符串的实际内容,仍然按照没有回车符的字符串去验证功能。在问题调试的过程中,还发现一个ksh的问题,调用strdup的时候传递一个0进来,当然会发生coredump。发现了这个问题的根本,是调用perl语言获取一个字符串的时候多了一个回车,没有做strip,导致后续的错误。然后从github上看,这个问题已经解决了,但是没有在实际的产品里引入fix,这个让人比较失望。人无完人,每天做事肯定有做错的事情,但是怎么自己反省,然后跳出怪圈,才是解决问题的思路。原创 2024-03-24 18:58:06 · 771 阅读 · 0 评论 -
Linux:kernel:misspelling:snake instinct
【代码】Linux:kernel:misspelling:snake instinct。原创 2024-03-23 21:46:31 · 184 阅读 · 0 评论 -
笔记:现在的工作模式
回想一下目前自己的工作模式,就是利用,笔记本待机功能,和notepad++以及firefox+bing,想到什么就在notepad++里记录,需要查什么资料,就用firefox使用bing去搜索,这样要一直保留之前的工作状态。然后等问题解决完之后,有空闲时间,再通过notepad++/firefox里的信息,回顾事件,做知识整理。总体来说,就是希望可以将自己不懂的东西一点一滴的整理出来,算是知识原来越多的一直学习方式。虽然算不上精益求精,或者深入,但也算是知识的总结,可以以备后用,或者拿来分享。原创 2024-03-16 05:33:44 · 592 阅读 · 0 评论 -
[程序员] 今天再讲一下这个同步问题;非同步理论?
具体使用哪一个方法,要看具体的情况。也就是可以将非同步导致的各种偶然奇怪的问题,作为一套正常事件的理论基础、或者平常的意识的基础。今天又遇到一个类似的同步问题,一个线程修改了某个变量的值,另一个线程去使用时发现不对,原因就是没有做好同步。之前有说过很多次这个非同步时,导致的问题会非常的奇怪,按照理论是不可能发生,就是按照一般正常思维是想不通的。根据以上的分析,我们就可以总结出识别分析的一套“方法”:这种问题的分析思路,一般是找到发生奇怪现象的相关变量,然后再根据变量找使用的线程,然后再看有没有做好同步。原创 2024-02-23 06:40:07 · 386 阅读 · 0 评论 -
[晕事]今天做了件晕事28;dmesg
可能是因为看/var/log/kern.log看的习惯了,当遇到一个机器上没有这个log的时候,想不起来该看什么日志了。一时竟然没有想起来使用dmesg命令,来查看内核日志。也可以使用journalctl的命令来看相关的systemd的日志。其实可以查看dmesg命令的输出,来看内核的日志。今天遇到了自己办的另一件晕事。原创 2024-02-22 22:09:16 · 76 阅读 · 0 评论 -
[程序员][儿童故事] Sora来临后的感想 - 儿童故事一则:拯救蚂蚁家行动
这个时候小朋友听到,小青蛙喊得舞得更带劲了:呱,呱,呱,呱,呱,呱,呱,呱,呱,呱,呱,呱,呱,呱,呱,呱!这次小朋友听到了,他看到旁边的青蛙,乱叫乱跳:呱,呱,呱,呱,呱,呱,呱,呱!当这个小朋友欣赏湖边的景色的时候,来了一只蚂蚁,朝这个小朋友喊:朋友朋友,这个大朋友,请你抬一下屁股,我的家在你的屁股下面!跳过来两三只青蛙,跟着小蚂蚁们/毛毛虫们/壁虎们一块喊:朋友朋友,这个大朋友,请你抬一下屁股,蚂蚁们的家在你的屁股下面!看到了湖边有:青青的湖水,黑黑的蝌蚪,绿绿的草,红红的小花,白白的云,蓝蓝的天!原创 2024-02-21 19:24:50 · 518 阅读 · 0 评论 -
[项目管理] 办公室环境的问题
如果哪一天我进化出来听键盘就能识别字母的能力,那这个就会刚才那个ATT问题一样的情况了,非常的勾引人的注意力!但后来发现,只能听一半的问题描述,因为只有当前这个旁边同事的话到了我耳朵里,其他线上与会的参与者不在这里,就听不到。目前的现状是:由于MS-teams的应用,在家办公的普及,以及会议室的紧缺,导致很多会议是在线上进行;综合下来的最终结果是会议比较多,尤其是周一二,而且大都是线上进行。声音这个东西,对于自己发出的,自己肯定不会认为是噪音,但是对于旁边的人来说,就不一定了,有可能打扰到别人的思路。原创 2024-02-18 05:48:21 · 394 阅读 · 0 评论 -
[晕事]今天做了件晕事27;变量为初始化?union带来的困扰
总结,有时候自己会在自己的怀疑里打转转,而忘记跳出来找一下数据类型的真实定义,跳出来看整个事件的全貌…刚看一段code,看不明白了,为什么有个变量没有初始化,就用了?后来让同事一块看,他找到了答案。答案是:counters和objects/inuse是union类型的变量。记于此,以提醒自己!原创 2024-02-07 06:33:58 · 589 阅读 · 0 评论 -
2024新年希望
谈到希望就让人想起来老师好的《虎父无犬子》里的名场面:你们两个分开,分开坐。其实希望与现实就像两个学生,需要让它们两个分开,不要做一块纠缠打闹,因为虽然希望总是希望教训现实,但是结果总是事与愿违,希望总是会被现实狠狠的抽打。如果不想让现实狠抽希望,就要放弃希望,承认现实!另外一个相关词是“拭目以待”,这个词蕴含着某些希望在里面,但是往往也是会与现实发生矛盾,然后被现实狠狠的抽打!所以2024新年的希望是什么,就自我安慰的“放弃希望!”,减少被现实抽打的机会:)。原创 2024-01-01 09:23:35 · 412 阅读 · 0 评论