笔记
mzhan017
小张
展开
-
通信:SIP:header:p-access-network-info RFC 7315
3GPP24.229选择wlan的标准是24.302.原创 2024-09-24 17:01:40 · 619 阅读 · 0 评论 -
[晕事]今天做了件晕事45 ssh 远程执行命令与>
但是上面这个命令执行的结果是在远程主机执行 echo level=2,然后ssh执行的结果放到了当前执行ssh命令的/proc/debug文件。今天做了一个晕事,在python脚本里写了一个调用远程主机的一个命令。想着是往这个虚拟主机的/proc/debug文件里写入 level=2;原创 2024-09-24 13:18:24 · 181 阅读 · 0 评论 -
第一次看到退出需要密码的情况
logoutPassword:原创 2024-09-19 07:37:14 · 79 阅读 · 0 评论 -
英文名的趣事
另一个是关于重名的趣事,也是在昨天,在一个MS teams的会话框,写了一句,说:Jack会做某某事;这个重名的问题也是非常的严重,比如在印象里,公司里姓刘的Leo有六七个,当然还有其他Leo:Leo Wang, Leo Yang, Leo Zhang,…在和一个同事结伴写脚本代码的时候,代码里需要用kill命令向一个进程发信号,中间要使用一个标记变量来标记kill的操作是否已经完成,这位同事给这个变量起了一个名称是:kill_mark,很好的变量名,可以做到顾名思义,是杀死的标记。一个是关于重名的错觉。原创 2024-09-19 06:25:46 · 183 阅读 · 0 评论 -
[程序员] 技术支持的基本技能之一:脚本语言!
最近遇到一个客户现场的问题,这个问题的发生是不定时的一个问题,就是不知道什么时候才会出现。这次遇到的例子,是说,发现现场支持人员对于这个脚本语言技能的掌握是非常的参差不齐。从个人的角度看,这个是技术支持的一个基本技能,就是大家必须都掌握的一个技能。有时候形成这种依赖后,会形成一个结果:给不愿意学习这项技能的人一个非常好的借口/由头,“自己不会,而他会”!而且:这个脚本完成之后,可以作为一个成功的工具,后面再遇到此类问题的时候,肯定也会有帮助。所以每次的技术支持是成长的一次机会,不如趁机学一下这项技能!原创 2024-09-18 06:42:38 · 30 阅读 · 0 评论 -
[程序员] 前人留下的苦难源,我们是否有勇气改正?
二十年间,平台一直在变迁,但是设计从未改变,遇到过类似的问题也有多起,但是每次都是浅聊,没有后文!因为产品的整体代码已经适应了这种不合理的设置(所以这种苦难源就会变得非常合理起来),如果要改变,需要做很多的回归测试,以及承担回归测试不完整的风险。产品里的很多线程/进程的优先级设置的很高,甚至高过了内核运行程序的优先级,高过了产品内警告处理程序的运行,高过日志打印的程序。”,经典的原因在于,有了“or”,才有了选择的机会,不管选择哪一个,都会变成我们的历史,变成我们的基因,变成我们未来的基石;原创 2024-09-16 05:06:05 · 597 阅读 · 0 评论 -
[开源工具]tcpreplay;tcpwriter
可以将tcpdump抓的包,重新拿来,再发出去(replay的一个过程),可以用来模拟特定的场景,来分析问题/性能,等。原创 2024-09-12 06:01:33 · 141 阅读 · 0 评论 -
[晕事]今天做了件晕事43 python-byte串长度与转义字符
如果直接使用notepad++,这个转义字符也算再长度里,但是再python内部\x0d算是一个字符。所以需要注意这种串长度的计算。过程是,组装byte串的时候,整个字符串里有转义字符\x0d。今天办了一件晕事,导致测试结果与预期不一致。原创 2024-09-10 05:24:58 · 286 阅读 · 0 评论 -
Windows: wsl下进行git操作,导致杀毒软件疯狂运作?
在 WSL 中执行 Git 操作时杀毒软件疯狂运作的现象,通常是因为 WSL 与 Windows 共享文件系统,导致杀毒软件对文件系统的变化进行扫描。通过调整杀毒软件的设置、优化 WSL 的操作方式,或者在 WSL 内部本地操作,可以减少杀毒软件的频繁运作,从而改善性能和使用体验。原创 2024-09-03 13:05:33 · 496 阅读 · 0 评论 -
[一般人不知道的点] 加法器对不同数字的运算消耗的电量不同
如果不是单门搞研究,学过模拟/数字电路,很多人可能不会注意这一点。原创 2024-08-28 05:29:50 · 476 阅读 · 0 评论 -
[一般人不知道的点] 五十年的生产线
事实上,技术挑战更多地集中在可预测性和稳健性上,而不是效率上。安全关键型嵌入式系统,例如客机的航空电子控制系统,被迫进入一种极端形式的“封闭箱”心态。例如,为了确保电传操纵飞机的 50 年生产周期,飞机制造商被迫一次性购买 50 年的微处理器供应量,以运行嵌入式软件。为了确保保持经过验证的实时性能,这些微处理器必须在同一条生产线上使用相同的掩模制造。如果不重新进行(极其昂贵的)软件验证和认证,系统将无法从未来 50 年的技术改进中受益。显然,与可预测性相比,效率几乎无关紧要,而可预测性。原创 2024-08-26 07:49:51 · 458 阅读 · 0 评论 -
DARPA
(https://www.36kr.com/p/1807344619579905)”,值得一看!大体意思是,DARPA/ARPA-H组织了一次研究竞赛,要通过AI来自动检查,修复软件层的安全漏洞/弱点。这个和最近项目组做的AI版的代码检查有点类似,不过这个层次更深一步。反正其他的也看不了,我就想看看这个house.gov吧,试试运气,不曾想看到了一条,公共公开信息,里有关于官员的财务状况披露报告。想着也是,国家安全最重要!而且,这个https://aicyberchallenge.com/,也访问不了。原创 2024-08-19 06:08:07 · 898 阅读 · 0 评论 -
程序员: 逻辑错误是静态代码工具无能为力的一种问题
记得很多年前自己就犯过同样的错误。逻辑错误是这个样子,循环处理多条数据记录,在开始循环之前定义了一个全局变量,用来保存数据记录的业务属性值,这个全局变量的内容应该是按照数据内容来决定,用过之后要重新初始化,但是却忘记了在循环开始的时候初始化,导致下一次用的时候使用到了上一次循环的内容。最近遇到一种代码逻辑错误,应该算是一种普遍适用的错误,记录在此。原创 2024-08-15 07:12:35 · 258 阅读 · 0 评论 -
电脑:usb口突然失效
而是在用我不小心将iphone手机的充电线,的纯铁包围的那一头插进去之后发生的。然后在用这个usb接口,就不工作了。其实也不是突然失效的,原创 2024-08-10 08:25:42 · 445 阅读 · 0 评论 -
[晕事]今天做了件晕事41 throw 与 括号
其实throw后面的参数根本不需要括号的存在,所以后面的【(string(“abc”)).c_str()】这一堆是一个整体。第一眼,看成了调用函数throw(),然后throw的返回值做了成员函数c_str()调用。将下面这一语句:throw(string(“abc”)).c_str();今天做了件晕事,之前写c++的throw语句写少了。原创 2024-08-09 07:03:21 · 663 阅读 · 0 评论 -
Linux: 使用c查看文件是否存在?ChatGPT
在 C 语言中,检查文件是否存在可以使用标准库函数,例如 fopen、access、或 stat。access 函数可以检查文件的可访问性。如果文件存在且可读,返回 0,否则返回 -1。总结:这三种方法都可以有效地检查文件是否存在。stat 函数可以获取文件的状态信息,如果文件存在返回 0,否则返回 -1。使用 fopen 打开文件,如果返回的指针不是 NULL,则表示文件存在。access: 更加高效,仅检查文件的存在性和可访问性。stat: 获取文件详细信息的同时检查文件存在性。原创 2024-08-08 06:11:37 · 420 阅读 · 0 评论 -
[程序员] 现在问题分析的两三个矛盾与人工智能(1)
如果可用关注到,并按照说明/方法来先解决警告,完全可用避免问题分析的链路的拉长与问题分析时间的拉长,相对的客户印象也会好很多!如果不关注警告,总是想靠着下一级来解决,这个方式就不可避免的带来很大的负面印象!今天这个例子,说客户现场,软件使用的时候碰到一个问题,按照流程,走到研发,研发费了半天劲,发现是设备的网络设置有问题,网络不通,导致高可靠性的两个服务在不停的做切换,从而导致这个问题!另一方面,就这个错误而言,也是需要总结一个trouble/shooting的总结,和网络不通做关联!原创 2024-08-03 09:04:42 · 518 阅读 · 0 评论 -
[生活] 铁锅铲不粘锅的推理
既然没有明确标识不粘层的脆弱性,必然会导致有一部分人(没有这个意识),会误用铁锅铲和不粘锅搭配,这个对于不粘锅来说就非常的危险,因为容易将不粘层破坏掉。烙饼的不粘锅,上面有一个重要部件,是表面的一层不粘涂料,这一层比较脆弱,所以这一层的硬度肯定不如铁或者其他金属和瓷器。还要看这一部分人是否会亲自刷锅,以及要注意到破坏掉的涂层,然后才可能会联想/思考/逻辑反推其中的逻辑。也就是说这种默认的意识是如此的普及,以至于,在买锅的时候,商品不会再明显的未知,或者有可能都没有什么特殊说明,不能用硬物。原创 2024-08-03 09:03:52 · 423 阅读 · 0 评论 -
clang的gcc影子
上面两个选项的文档,需要到gcc的使用手册里找。专门找llvm/clang的文档,可能找不到相应的解释说明。原创 2024-07-13 10:10:46 · 161 阅读 · 0 评论 -
[程序员] gnu: binutils:addr2line 结果显示很多问号?
这个问题的原因是说这个二进制文件的编译/链接版本和当前使用的addr2line所属的binutils版本有差别,导致内容解析出现问题。所以在使用addr2line的时候一定要注意,不是说只要系统里addrline这个命令,就可以了,还需要看当前addr2line的版本是否对应二进制文件的编译链接使用的binutils版本,如果兼容就可以正确的解析调试信息,如果不兼容就会出现标题中的问题。之前总结过addr2line的一个问题:gnu:binutils: addr2line显示行号有问题?原创 2024-07-06 06:16:02 · 596 阅读 · 0 评论 -
[开源软件] 支持链接汇总
只要是使用的第三方软件是Redhat提供的rpm包,就就可以在这里提问题。原创 2024-07-02 22:08:22 · 325 阅读 · 0 评论 -
每日疑问,多线程场景,下面的代码是否可以保证只执行一次
看着这个代码的目的是只注册一次sighandler,但是这个判定是否可以保证一次?但是根据代码看,其实不会有关键区的读写,所以即使有同步问题,也不会产生什么特别的影响。所以代码没有问题,但是这是一个坑。原创 2024-06-30 20:34:52 · 207 阅读 · 0 评论 -
[晕事]今天做了件晕事40 问题环境的保持
这就是做的比较晕的事情。有问题就应该在有问题的环境做debug,而且是非常仔细的检查。而不是想着倒回去,作比较,这样会破坏有问题的环境。今天办了一件晕事,同事在做升级测试的时候遇到一个网络不通的问题,经粗略查看,应该是网络问题,路由器没有回复ARP的reply。一交流,好像是没有别的好办法,就做了降级,看看之前的状态。升降级的操作比较费事。结果尴尬了,降回去就没问题了。原创 2024-06-29 04:52:15 · 129 阅读 · 0 评论 -
每日疑问: 为什么intel网卡的问题,而要找服务器厂商
但是intel的技术支持,却让找Cisco的组装厂商?这个是什么业务逻辑?Cisco和intel还有支持协议关系?比如下面这个链接里说看到Linux服务器的内核日志,看到i40e打了一个错误日志。原创 2024-06-27 18:14:56 · 139 阅读 · 0 评论 -
[尴尬] 撬键盘,蹦出头皮屑
这两天发现,使用的Thinkpad T14笔记本,键盘上有四个键失灵“R/T/4/6”,怎么点都不出来。才刚刚过三年质保期。不得不说运气太寸了,质保刚过,键盘就失灵了!没办法,公司IT说可以找厂家外修,但是需要费用。或者内修,在库房找一个旧的笔记本,换一下键盘。那就内修吧,节省一些成本。修电脑的是一个大姐,拿起螺丝刀开始撬笔记本的键盘,在哪里撬呀撬,蹦的键盘满是头皮屑,和碎头发/胡渣!原创 2024-06-24 17:00:01 · 501 阅读 · 0 评论 -
[程序员] 外企工作的英语重要性
这样一解释,问题就十分的明显,就是进入本地的包,没有通过IPsec的完整性校验,那么问题的下一步就是要看为什么校验失败,是对方发的数据有问题?因为在工作中,英语是非常重要的一门基础技术,所有的产品代码/第三方开源软件都是英语书写,包括代码逻辑,变量/函数/类定义,注释描述,日志打印,文档的书写;即使这些渠道都没有,(以现代的网络发展,我觉着不可能,词典肯定是有,网络搜索引擎肯定是有,大模型肯定是有),所以猜也要猜个出来,就看上不上心了!作为一名程序员,英语的必备性是不可或缺,尤其是在一个外企!原创 2024-06-22 08:08:05 · 206 阅读 · 0 评论 -
[程序员] 表达的能力
但是调用temp.h文件中的函数A()是这样写的,功能是判断是不是宏定义了CC,如果宏定义了就返回true否则返回false。后来通过深入交流,发现这个文件名称是开源库里的,所以根本就不需要例如,直接写开源库文件名就好了,不需要temp的举例。最近在工作中也是遇到一例,如果是开问题单,分析的人当然是希望可以看到稍微具体点的测试基本步骤,如果这个没有,而只是给出大体的步骤和现象,那就需要自己从日志里巴拉巴拉,或者和测试人员再深入交流一下。原因之二是,答题人的知识盲区,也是理解问题的一个关键。原创 2024-06-22 08:07:49 · 497 阅读 · 0 评论 -
[程序员] openstack: openvswitch: firewall丢包
这也算是正常,网络丢包是再正常不过的普遍问题,尤其是在云平台里的虚拟网络里。而且里面有提到一个绕过的方法是,如果在TCP的包,就可以在TCP的包里添加一个timestamp的选项,这个包就不会丢了,因为包的大小增加了。还是第一次看到,timestamps选项还可以用来故意增加包的大小,来绕过一个问题。从上面的描述,大体可以猜到这个openvswitch提供的firewall的功能有问题。最近看到一个老问题:说openvswitch提供的防火墙策略,会导致网络性能下降,而且有丢包。原创 2024-06-16 09:48:35 · 208 阅读 · 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 · 160 阅读 · 0 评论 -
[程序员] 最近的感悟,错误处理占大头?
就是一个很好的说明,这里就是一个非常极端的例子,收发两端的buff都满了,这种情况出现的概率非常低;但是这种不合理,又没有什么好的正向解决的方法(或者是一直不close,慢慢等buff清空,但是又要考虑是否有安全问题),导致最终的解决方法是不确定的,需要根据具体的需求,具体实现!所以即使在研发内部已经预想到了很多的异常可能,加了很多的异常代码,但是保不住还有没有想到的异常在客户现场等着你!即使想到了某种异常,而加了异常处理代码,到了现场,或许会因为异常处理代码的加入,而引入其他的问题。原创 2024-05-24 20:04:34 · 775 阅读 · 0 评论 -
[杂谈] 新型狼来了
当被整蛊的这些人,在一次次的狼来了,而狼没有真的来的时候,会放松警惕。还有很多危险的视频,比如虽然在屏幕上写着“危险动作,请勿模仿”四个字,但是如果对于不认识字的小朋友,或者外国人,他们应该怎么区分是不是危险的动作。虽然说是下意识的反应,但是如果这种下意识的情况变多,应该也会导致惯性作用。说人类的大脑有一部分是属于硬件即时反应的区域,可以控制在某种情况下的反应(下意识反应):僵住,跳跃,还是反击。比如,混在行人中,突然做闪躲的动作,会导致附近的行人,也会下意识的做闪躲的动作。是时候,对这种行为进行反击了!原创 2024-05-21 19:32:33 · 491 阅读 · 0 评论 -
[晕事]今天做了件晕事34 ssh 登陆需要加端口?
所以有时候ssh登陆不能省略登陆端口。用默认的22端口可能会有问题。这个事情也是第一次遇到,说有一天机器,开了两个ssh登陆的端口。两个端口开的功能不一样,应该是根据配置做的权限管理。原创 2024-05-17 14:49:36 · 454 阅读 · 0 评论 -
[晕事]今天做了件晕事32, strings可执行文件没有找到期望的字符串
原因竟然是这个字符串在二进制文件所依赖的一个库里,所以只是strings这个二进制文件是不行的,需要找到具体是在哪一个库文件里,这个时候就需要实用ldd命令查看是有哪些个依赖库,并依次找一找。但是今天通过strace查看,肯定是在代码/二进制文件里有某个字符串存在。那为什么就是搜不到这个字符串呢?stings这个命令可以查看到可执行文件里的一些代码里定义的字符串信息。所以动态库的分离,会导致这种问题的出现,意识里需要增强一下这个分离的事实。但是用strings就是看不到,思索了一下。原创 2024-05-15 08:25:13 · 377 阅读 · 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 · 531 阅读 · 0 评论 -
[晕事]今天做了件晕事31, gre 抓到半边
问题与现象,单独在gre tunnel的虚拟网络接口上用tshark抓包,只抓到半边,进来的包;一开始怀疑是tshark的问题,后来换了tcpdump,还是抓到半边。如果确定tcpdump抓包肯定能抓到,而没有抓到的时候,可以使用-i any试一试。最后终于在其他的接口上找到了另一半包,进来的是在这个gre tunnel,出去的时候换成了另一个gre tunnel,是路由设置的问题。再后来就是怀疑,gre的实现就是这样的?翻看了代码感觉也是不可能。原创 2024-04-26 05:37:29 · 513 阅读 · 0 评论 -
[晕事]今天做了件晕事30, perf
今天做了一件晕事,使用perf dump相同应用程序的两个进程,相当于两个进程完成的任务是一样的,处理的业务是一样的。而且这两个进程是运行在两个不同的cpu上。但是dump出来的数据里,一个有inet_csk_bind_conflict函数调用,占比比较高;思维发散的危害之一,就是不够专注!如果手头有代码,就是需要看代码逻辑,确认一下再考虑是系统内核的调度问题。一开始还要以为这个是内核将系统调用调度到了其他CPU,找了半天也没有找到相关的设计。其实不是调度问题,而是内核里代码逻辑上有些区别。原创 2024-04-26 05:36:41 · 262 阅读 · 0 评论 -
Linux: signal: SIGTERM信号对线程的影响
这个sigterm信号只影响调用sigaction (SIGTERM, &act, NULL)函数调用的线程。和这个程序关联的其他线程还是照样运行,不受影响。但是如果再发送第二个sigterm,可能影响到其他子线程的运行。在SIGTERM的handler里调用pthread_create依然可以创建出新的线程。而且这个新线程可以正常运行。原创 2024-04-24 19:26:23 · 258 阅读 · 0 评论 -
[杂谈] [杂谈]老实人要突破的想法,显眼包?
在牛首山的坑里,每个人都要戴鞋套,小朋友走到半路,发现有一只鞋套形成半挂状态;他说不行,脱了,就变“显眼包”了!再说谁会看你的脚,大家都花了钱在看佛,还要专门盯着你这个显眼包看?这个也很好理解,如果拿着杆子打了,但没有打到枣,不就是一个显眼包了。这个“显眼性”的芥蒂也可以很好的破除,因为这打枣后,有枣的机率要比实际买彩票中奖的机率更大!这理注意,同时也要有识别骗术的能力,不要一股脑啥都打!前些天说敢优于不敢,因为“敢”了,才能做起来,然后才能有更多的经验“敢”起来,而且能成功!鼓励大家脱去显眼包的束缚!原创 2024-04-24 19:19:36 · 377 阅读 · 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 · 590 阅读 · 0 评论 -
[算法] 动态规划
这里的动态是指每一次的计算结果会影响下一次,或者再次的运算效率,也就是说下一次的运算已经被上一次的计算影响,在计算的过程上发生了改动;这里的后一个单词是programming,为什么要翻译为动态规划?但是也要看它的二般意思:规划,计划;这个算法的本质是根据题目先设计出一张表来记录每一次的计算结果;不管这张表是一维的还是二维,三维,四维,总之是要记录下来,以便再次(注意不一定只有下一次用)。对这个算法的原有印象就是非常难理解,而且怎么都感觉这个算法名称有些误导;感觉这个算法是不是叫:有记忆的算法更好一点?原创 2024-04-19 06:44:28 · 453 阅读 · 0 评论