此Bug的解决方案请见:https://www.cnblogs.com/xiandedanteng/p/12205422.html logback是log4j的后继者,作者也是同一人,但其中的bug不可不知. 其中一个bug就是:当设定FileNamePattern为${LOG_HOME}/XXXX.%d{yyyy-MM-dd}.log后,如果有线程不断写log,即使过了零点,文件也不会更换到以新日期命名的新文件,而还是会在昨天命名的文件中不断写入.即使有新线程在零点之后启动写log,内容依旧会…
上次发现了logback1.11的一个bug,即有线程持续写入log,则log文件不会按设定模式进行轮换. 但发现同样采用logback1.11的另外一个工程,它的日志文件就没有错误,于是参照其配置文件将logback.xml设定如下: <?xml version="1.0" encoding="UTF-8"?> <configuration debug="false"> <!-- Where are log fil…
8/8日报 分级埋点:     [MobClick event:UmengPagePlusDoctor attributes:@{@"page":@"plusPage"}]; 弹层适配小屏幕, 标题比较长,太靠近左右两边了 使用中文标点符号   学习关于保险,超过50岁,重疾险就不好买了,这个"不好买”有两层意思,第一层,有的保险直接不卖给50岁以上的人,第二层,50岁以上的人重疾险非常昂贵,而且赔付的钱最多十万. 保险应该趁年轻买 看知乎,李元霸推荐的两…
昨天南京到客户服务数据库的优化调整,其中新上线,经过审查alert.log当日志现在是在过去一段时间内取得,每隔几个小时的时间滞后,班会报似的内容: Thu Aug 21 09:01:26 2014 WARNING: Heavy swapping observed on system in last 5 mins. pct of memory swapped in [8.42%] pct of memory swapped out [2.16%]. Please make sure there…
前言 C++11之前我们使用线程需要系统提供API.posix线程库或者使用boost提供的线程库,C++11后就加入了跨平台的线程类std::thread,线程同步相关类std::mutex.std::lock_guard.std::condition_variable.std::atomic以及异步操作相关类std::async.std::future.std::promise等等,这使得我们编写跨平台的多线程程序变得容易,线程的一个高级应用就是线程池,使用线程池可以充分利用多核CPU的并行…
C++11中一个使用for+auto时容易发生的bug 一个小坑,那就是忘记在for循环中使用auto时加引用. 例如: for(auto num : nums){ // do some thing } 可以看到,num并非nums中元素的引用,这就会导致一个问题:如果循环中有什么改变num的操作,是不会反映在nums里面的. 所以会导致循环后nums没变的现象,为了防止这种隐形bug的发生,以后使用这种循环时尽量都加上引用,即: for(auto& num : nums){ // do som…
这个bug不是技术bug或者是程序bug,是典型的业务操作bug. 开发人员混淆了线上数据和本地测试数据,把线上数据切换到本地的数据做测试,结果对这些客户进行了资金调整...就导致了这个悲剧发生 早在这个事故之前,就一直有想法把业务权限和数据权限好好做一下,但是是一直有琐碎的事情就耽误了,终于还是导致可怕的事情发生了 万幸的时候,钱虽然到了用户的金额中,但是线上的数据被没有改变,用户看不到多出来的这笔钱,让我们还有时间去和支付公司协调解决这个问题.…
我是一个Bug ,在这个系统中潜伏很久了,历经多轮测试的严酷考验而屹立不倒,如果Bug界按难度分类的话,我绝对属于地狱模式. 现在,我就等待一个倒霉蛋来触发, 可是他老是不来. 其实不能叫倒霉蛋 , 应该是幸运儿,能走到我这个分支,遇到我是他的荣幸. 和倒霉蛋儿对应的就是背锅侠,就是你,看文章的程序员. 1 有些Bug实在是太过明显,普通人一眼就能看出来,这批人最先阵亡. 还有一些Bug需要特定的条件才能触发,随着时间的流逝,用户的增多,他们也逐渐牺牲. 只有像我这样的,需要符合多个条件或者需要…
原文地址:https://zhuanlan.zhihu.com/p/22474724 作者的结论没写好,我来说两句.. 结论: Docker swarm自己有个函数,叫setTcpUserTimeout,这个函数调用了conn.File()方法,将tcp的fd变成了blocking,而且没有关闭对应的fd.相当于每次设定tcpUserTimeout参数,再去read一下fd,都会产生一个新的线程.因为老的线程在读fd,而fd被设置成blocking了,于是golang的运行时只好再开一个新的.…
本文来自:http://dinglin.iteye.com/blog/1976026#comments 背景 客户报告了一个count(distinct)语句返回结果错误,实际结果存在值,但是用count(distinct)统计后返回的是0.将问题简化后复现如下,影响已知的所有版本. 这里的 ; 一定是在插入前设置,这样下面的操作就是按照这个大小进行的,最终出现错误的结果,解决办法: 1,开始前设置足够大的tmp_table_size(推荐): 2,设置成1024,在不修改tmp_table_s…