精华内容
下载资源
问答
  • QT Critical error detected c0000374
    2021-07-29 16:29:49

    在使用QT写GraphicsView时,运行程序添加Item时,无缘无故报错了,debug调试也是跳到QT源码上面去,还都不是报同一个位置的错误,有些还是new的位置报错。而报错信息是“Critical error detected c0000374”,搜出来的文章也都是内存不足、越界之类,还有说用智能指针的问题,但以上问题我都没有。
    当内存充足时,new还能报错,那应该是跟内存没多大关系了。加上在代码不改或者一些毫无影响的改动的情况下,报错还不是在同一个地方,我觉得可以排除内存不足、越界之类。

    1. 但程序蹦绝大部分又是跟指针有关,所以我把我类里面的指针变量注释了,结果运行一点问题都没有,而且我这指针的还是只定义了还没用,连赋值nullptr的操作都没有,真的奇了怪了。如下例1代码
    //例1
    //.h文件
    class A{
    int a;
    int b;
    int *p;//注释了,运行就没问题,不注释运行就蹦,打印的错误信息“Critical error detected c0000374”
    int c;
    ...
    int z;
    }
    
    //.cpp文件
    A::A:a(0),b(1),c(2){}
    
    1. 我只把指针变量写在所有变量的后面,这么顺序一换,运行又没问题,我以为这就把问题解决了,结果只给这变量赋值nullptr就又蹦了。如下例2代码
    //例2
    //.h文件
    class A{
    int a;
    int b;
    int c;
    ...
    int z;
    int *p;
    }
    
    //.cpp文件
    A::A:a(0),b(1),c(2),
    p(nullptr)//注释就能运行,不注释运行就蹦,打印的错误信息“Critical error detected c0000374”
    {}
    
    1. 一开始怀疑是不是变量类型的问题,但后面换了其他类型一样不行。怀疑会不会是因为.cpp文件数据有问题,于是新建了一个.h和.cpp文件,打算重新写原本那文件的代码,结果就只写成类似如下的代码,就是只写了原本.h文件变量定义和构建函数,其他的都没写,运行没问题,然后我就重新试了之前有问题的.h.cpp文件,发现也可以运行,一点问题都没有,代码一点都没改过,后面也试了改成之前出问题的样子,结果也是没问题。这个过程只是将源代码重新构建生成了,将以前的编译生成的任何文件都重新生成了一遍。因为Qt添加新文件之后,要重新 执行qmake->构建/运行/重新构建(或者 清除->构建/运行/重新构建),这个过程就将以前编译生成的.obj、ui_xxx等文件都重新按照现在的代码去生成了。所以我怀疑是之前编译生成的相关文件有问题,导致出现了“Critical error detected c0000374”的问题
    //
    //.h文件
    class A{
    int a;
    int b;
    int c;
    ...
    int z;
    int *p;
    }
    
    //.cpp文件
    A::A:a(0),b(1),c(2),
    p(nullptr)
    {}
    

    根据上面的猜测,排除内存、越界之类和智能指针的问题,可以尝试的解决方案:1、将之前编译生成的文件全部清除,并将所有内容再重新编译生成一遍。
    2、将有问题的.h.cpp重新打一遍,最好别复制,避免文件数据有问题。复制有可能会把之前有问题的数据一起复制了。
    3、先做2,再做1

    更多相关内容
  • 上线后报一堆这样的错:iconv() : Detected an illegal character in input string考虑到GB2312字符集比较小,换个大的吧,于是改成GBK:$str = iconv(‘UTF-8’, ‘GBK’, unescape(isset($_GET[‘str’])?...
  • 起因 修改了表结构以后执行python3 manage.py migrate 报错: django.db.utils.OperationalError: ...还是不能生成表,提示:No changes detected 处理过程 首先删除了app对应目录下的数据库对应的文件和缓存文件: $
  • 不然就会出现这个问题:No Python 3.7 installation was detected 系统win10 x64环境。 版本Python 3.7.1 因为某些问题需要重新安装python(手痒测试),但是发现无论如何也卸载不成功,报错 0x80070643安装时发生...
  • 问题 最近在macOS Catalina中使用npm安装模块,经常会出现如下错误: > node-gyp rebuild No receipt for 'com.apple.pkg.CLTools_Executables' found at '/'. ...gyp: No Xcode or CLT version detected! gyp E
  • 解决报错HEAP CORRUPTION DETECTED heap corruption detected after normal block.zip
  • centos7_XFS_报Corruption of in-memory data detected错误修复
  • Error:scalac: missing or invalid dependency detected while loading class file 'Tensor.class'. Could not access term mllib in package org.apache.spark, because it (or its dependencies) are missing. ...
  • ISAPI c:windowsmicrosoft.netframeworkv2.0.50727aspnet_isapi.dll 报告它自身有问题,原因如下: Deadlock detected
  • 今天启动项目,测试时,发现一个报错:Duplicate keys detected: ‘892834eb-a50c-488c-83ea-cc23f05e2875’. This may cause an update。具体如下: 问题:使用Element UI的Tree 树形控件出现问题。 上网查了一下...
  • NULL 博文链接:https://dingherry.iteye.com/blog/1545972
  • 本文详细介绍了如何攻破已经发表的10种对抗样本防御方法。
  • 此文档描述了Detected memory leaks内存泄漏的简单检测方法,通过调用系统函数,在debug模式下运行,可以很快定位出内存泄漏之处;注:此方法并不能适用所有Detected memory leaks情况
  • 码云 eclipse git remote: warning: Large files detected. 非命令方式解决方案。
  • Frameworks Detected: Web framework is detected 再添加web.xml为一个啥玩意之后,项目就可以正常访问了。 另外记录一下, 在使用maven导包的时候,本地安装一个maven会方便很多(我之前一直没装过)。今天导包遇到...

    在一台新电脑上打开一个SSM项目的时候,部署没有问题

    但是在访问的时候,一直报404

    然后,我就一直在纳闷。。。到底是哪里出了问题?是环境没有配好吗?
    我开了另一个项目,结果是可以的。

    当我再次打开这个项目的时候,弹了一个提示
    Frameworks Detected: Web framework is detected
    在添加web.xml为一个啥玩意之后,项目就可以正常访问了。

    另外记录一下,
    在使用maven导包的时候,本地安装一个maven会方便很多(我之前一直没装过)。今天导包遇到的一个异常,在使用了本地的maven之后就轻松解决了,而且使用本地的仓库感觉效率高好多。

    死神里喜欢的两个角色:

    山田花太郎 斩魄刀:瓠丸 所属番队:四番队,医疗队。 前第七席、现任第三席
    瓠[hù]丸(Hisagomaru)
    解放语:“满载吧、瓠丸!”
    斩向对方的伤口时,能吸收损伤,治愈对方。当吸收的损伤到达一定量时,会变成手术刀型的“朱色瓠丸”(Akeiro Hisagomaru),能将吸收的损伤全部向敌人放出,满载的攻击能一击打倒一头大虚。
    实体化:
    出现在斩魄刀异闻篇中,由于村正的力量,使瓠丸进行实体化,但对自己的主人——山田花太郎——并不感到不满,于是便想回到刀状, 因为回不去误以为主人把他抛弃了,从此便过上了隐居的生活,被主人发现后与主人走丢,下落不明。最后回到花太郎身边。
    实体化

    壶府凛(右) 喜好:蛋糕、甜点 所属番队:十二番队,技术开发局,隶属于“灵波测量研究科”。

    展开全文
  • 开机提示USB-Device-over-current-status-Detected后关机1.doc
  • stack corruption detected问题探究

    千次阅读 2020-05-15 08:58:27
    ------- Abort message: 'stack corruption detected' r0 00000000 r1 00000e87 r2 00000006 r3 00000008 r4 84cff978 r5 00000006 r6 84cff920 r7 0000010c r8 84cfe708 r9 923fc200 sl 00000000 fp 84cfe694 ip ...

    问题现象

    复现步骤
    Android 7.0平台
    安装手机百度apk(v8.6.5)
    启动App后必现native crash

    分析定位

    初步分析

    tombstone文件如下

    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    Native Crash TIME: 959207
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    Revision: '0'
    ABI: 'arm' 
    pid: 3329, tid: 3719, name: bner  >>> com.baidu.searchbox <<<
    signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
    Abort message: 'stack corruption detected'
        r0 00000000  r1 00000e87  r2 00000006  r3 00000008
        r4 84cff978  r5 00000006  r6 84cff920  r7 0000010c
        r8 84cfe708  r9 923fc200  sl 00000000  fp 84cfe694
        ip 0000000d  sp 84cfe530  lr ae08c597  pc ae08edf4  cpsr 000b0010
        d0  0000000000000000  d1  0000000000000000
        d2  0000000000000000  d3  0000000000000000
        d4  0000000000000000  d5  0000000000000000
        d6  0000000000000000  d7  0000000000000000
        d8  0000000000000000  d9  0000000000000000
        d10 0000000000000000  d11 0000000000000000
        d12 0000000000000000  d13 0000000000000000
        d14 0000000000000000  d15 0000000000000000
        d16 005f006b006e0075  d17 003000310033006b
        d18 0000000000052da0  d19 000000000004a938
        d20 000000002000166a  d21 00013093a834e468
        d22 0000000000000000  d23 0000000000000000
        d24 0000004100000052  d25 ffffff79ffffffbb
        d26 0000000000000000  d27 0000000000000000
        d28 0000000000000000  d29 0000000000000000
        d30 0000000000000000  d31 00000000000e8800
        scr 88000093
    
    backtrace:
        #00 pc 00049df4  /system/lib/libc.so (tgkill+12)
        #01 pc 00047593  /system/lib/libc.so (pthread_kill+34)
        #02 pc 0001d855  /system/lib/libc.so (raise+10)
        #03 pc 000193a1  /system/lib/libc.so (__libc_android_abort+34)
        #04 pc 00017014  /system/lib/libc.so (abort+4)
        #05 pc 0001b84f  /system/lib/libc.so (__libc_fatal+22)
        #06 pc 000482ab  /system/lib/libc.so (__stack_chk_fail+6)
        #07 pc 00002c29  /data/app/com.baidu.searchbox-1/lib/arm/libbner.so (getSec+96)
        #08 pc 0000142f  /data/app/com.baidu.searchbox-1/lib/arm/libbner.so (Java_com_bnerclient_InitSo_getSec+2)
        #09 pc 01623e41  /data/app/com.baidu.searchbox-1/oat/arm/base.odex (offset 0x153f000)
    

    相关log
    libc打印出"stack corruption detected", 即检测到栈内存被破坏。

    --------- beginning of crash
    06-16 10:02:27.009  3223  3565 F libc    : stack corruption detected
    06-16 10:02:28.126  3223  3565 E jnicrash: finish
    06-16 10:02:28.128  3223  3565 E chromium: [ERROR:zw_microdump_crash_reporter.cc(296)] BREAKPAD ************************************************
    06-16 10:02:28.128  3223  3565 E chromium: [ERROR:zw_microdump_crash_reporter.cc(297)] BREAKPAD Build fingerprint  6, time 2017-06-16 02:02:28.127 UTC 
    06-16 10:02:29.862  3223  3565 W BREAKPAD: Output crash dump file:
    06-16 10:02:29.862  3223  3565 W BREAKPAD: /data/user/0/com.baidu.searchbox/files/zeuslogs//1afdc4cc-7cc6-8598-45991107-0e5e400e.dmp
    06-16 10:02:29.863  3223  3565 W BREAKPAD: /data/user/0/com.baidu.searchbox/files/zeuslogs/8.6.5-25580288-com.baidu.searchbox-8.4.2.345-SP9832A-neon-7.0-0-1497578548127.bdmp
    06-16 10:02:33.370  3223  3565 W google-breakpad: ### ### ### ### ### ### ### ### ### ### ### ### ### 
    

    对比实验

    Nexus 5x/6p(Android 7.0)上无法复现
    我司多个产品均能复现
    有一台机器(烧录的本地pc编译版本)无法复现

    侧面排查

    另一同事, 通过对比Jenkins编译版本和我本地编译版本的多个文件,发现/system/build.prop中的ro.build.host属性值存在差异,修改该属性值后问题不再复现。

    正面分析

    原理

    stack check failed的根本原因在于栈内存被覆盖,编译器会在函数进入和退出前后插入一个stack check的东西用于检测内存越界这种错误。

    汇编分析

    进入函数时ldr/str

    00002bc8 <getSec>:
    2bc8:       b5f0            push    {r4, r5, r6, r7, lr}
    2bca:       4d19            ldr     r5, [pc, #100]  ; (2c30 <getSec+0x68>)
    2bcc:       b091            sub     sp, #68 ; 0x44
    2bce:       1c04            adds    r4, r0, #0
    2bd0:       447d            add     r5, pc
    2bd2:       682d            ldr     r5, [r5, #0]
    2bd4:       ae02            add     r6, sp, #8
    2bd6:       9201            str     r2, [sp, #4]
    2bd8:       682b            ldr     r3, [r5, #0]
    2bda:       2100            movs    r1, #0
    2bdc:       2232            movs    r2, #50 ; 0x32
    2bde:       1c30            adds    r0, r6, #0
    2be0:       930f            str     r3, [sp, #60]   ; 0x3c ==> store到[sp + 60]
    

    退出函数前检查栈内存是否相同

    ... ...
    2c20:       9a0f            ldr     r2, [sp, #60]   ; 0x3c ==>从[sp + 60] load
    2c22:       682b            ldr     r3, [r5, #0]     
    2c24:       429a            cmp     r2, r3
    2c26:       d001            beq.n   2c2c <getSec+0x64>     相等就正常退出
    2c28:       f000 f94a       bl      2ec0 <getDSec+0x114>   不相等就跳到__stack_chk_fail执行abort
    2c2c:       b011            add     sp, #68 ; 0x44
    2c2e:       bdf0            pop     {r4, r5, r6, r7, pc}
    

    所以,问题出现后,我们可以查看[sp, #60]附近的内存数据, 就能知道大概什么类型的数据发生内存越界。
    gdb堆栈和相关寄存器

    (gdb) bt
    #0  tgkill () at bionic/libc/arch-arm/syscalls/tgkill.S:10
    #1  0xae08c596 in pthread_kill (t=<optimized out>, sig=6) at bionic/libc/bionic/pthread_kill.cpp:45
    #2  0xae062858 in raise (sig=3719) at bionic/libc/bionic/raise.cpp:34
    #3  0xae05e3ce in __libc_android_abort () at bionic/libc/bionic/abort.cpp:57
    #4  0xae05c018 in abort () at bionic/libc/arch-arm/bionic/abort_arm.S:43
    #5  0xae060852 in __libc_fatal (format=0x0) at bionic/libc/bionic/libc_logging.cpp:678
    #6  0xae08d2ae in __stack_chk_fail () at bionic/libc/bionic/__stack_chk_fail.cpp:35
    #7  0x9249ec2c in ?? ()
    Backtrace stopped: previous frame identical to this frame (corrupt stack?)
    
    (gdb) f 7
    (gdb) i r
    r0             0x0  0
    r1             0xe87    3719
    r2             0x6  6
    r3             0x8  8
    r4             0x84cfe564   2228217188
    r5             0x84cfe554   2228217172
    r6             0x84cfe5a8   2228217256
    r7             0x84839db0   2223218096
    r8             0x84cfe708   2228217608
    r9             0x923fc200   2453651968
    r10            0x0  0
    r11            0x84cfe694   2228217492
    r12            0xd  13
    sp             0x84cfe550   0x84cfe550
    lr             0xae05e3cf   -1375345713
    pc             0xae05e3ce   0xae05e3ce <__libc_android_abort()+80>
    cpsr           0xb0030  720944
    

    查看sp+60附近内存

    (gdb) x /32xw 0x84cfe5a0+60
    0x84cfe5dc: 0x3031336b 0x3230362f 0x8e3a002f 0x84cfe968
    0x84cfe5ec: 0x84cfe708 0x84cfe6c8 0x9249d433 0x74129b00
    0x84cfe5fc: 0x975abe43 0x8e3a7cdc 0x00000000 0x00000002
    0x84cfe60c: 0x12f9d940 0x740fad60 0x00000000 0x923fc28c
    0x84cfe61c: 0x72ce9c55 0x6ff3d9f8 0x00000000 0x00000000
    0x84cfe62c: 0x00000000 0x00000000 0x00000000 0x00000000
    0x84cfe63c: 0x00000000 0x00000000 0x00000000 0x00000000
    0x84cfe64c: 0x00000000 0x00000000 0x00000000 0x00000000
    

    这里很明显是ASCII字符

    (gdb) p (const char *)0x84cfe5dc
    $1 = 0x84cfe5dc "k310/602/"
    

    再往前查看整个字符串,就能看到这是我司特有的一个URL

    (gdb) p (const char *)0x84cfe5a0
    $2 = 0x84cfe5a0 "}\315\377\377\020\346τhttp://10.0.1.97:8080/jenkins/job/sprdroid7.0_trunk_k310/602/"
    

    结合汇编code, 猜测这里应是获取某个属性。
    现在通过加log, 已确认是App在访问ro.build.host属性导致的。

    06-16 10:08:10.869  1956  2288 E libc    : __system_property_get: property name = "ro.build.host"
    --------- beginning of crash
    06-16 10:08:10.869  1956  2288 F libc    : stack   corruption detected
    

    再查看下出问题手机上的ro.build.host的值, 正好对应上

    $adb shell getprop ro.build.host
    http://10.0.1.97:8080/jenkins/job/sprdroid7.0_trunk_k310/602/
    

    长度为62
    Nexus 6p上该属性的值为

    $ adb shell getprop ro.build.host
    wphr7.hot.corp.google.com
    

    长度为26
    本地编译的版本该属性的值为

    $ adb shell getprop ro.build.host
    tj03456pcu1
    

    长度为12
    这基本就确定是获取属性值出现越界。

    Root Cause

    Android定义的属性值最大长度为92

    #define PROP_VALUE_MAX  92
    

    而手机百度App在栈上用于存储property的局部数组size太小,大概为50+左右。所以遇到超过50+字符串,就容易出现栈内存越界了。

    解决方案

    • 此问题在我司平台不解决
    • 反馈此问题至百度客服,希望百度解决App栈内存越界问题。
      在这里插入图片描述
    展开全文
  • IPC Send timeout detected模拟和总结

    千次阅读 2019-12-24 17:12:45
    在多节点的集群日志中,经常会看到一些IPC Send timeout detected的报错,有的时候是偶尔报一次,数据库层面也看不出什么异常,如果一段时间大量出现了IPC Send timeout detected的报错,可能会导致实例被驱逐。...

           在多节点的集群日志中,经常会看到一些IPC Send timeout detected的报错,有的时候是偶尔报一次,数据库层面也看不出什么异常,如果一段时间大量出现了IPC Send timeout detected的报错,可能会导致实例被驱逐。

    下面看一段因为IPC Send timeout detected超时导致实例被驱逐的日志

    2019-07-09T04:00:56.552363+08:00
    IPC Send timeout detected. Sender: ospid 330801 [oracle@BB001 (PING)]   <=====IPC Send timeout detected。Sender是实例的PING进程
    Receiver: inst 4 binc 8 ospid 129583                                    <=====接收者是实例4的 ospid 129583进程
    2019-07-09T04:04:10.694155+08:00
    SGSGXDB1PDB(3):minact-scn: got error during useg scan e:12751 usn:11
    SGSGXDB1PDB(3):minact-scn: useg scan erroring out with error e:12751
    2019-07-09T04:06:20.571349+08:00
    IPC Send timeout detected. Sender: ospid 331082 [oracle@BB001 (LCK0)]
    Receiver: inst 4 binc 8 ospid 129871
    2019-07-09T04:06:20.648844+08:00
    Communications reconfiguration: instance_number 4 by ospid 331082
    2019-07-09T04:06:32.085167+08:00
    LMS1 (ospid: 330817) has detected no messaging activity from instance 4
    USER (ospid: 330817) issues an IMR to resolve the situation
    Please check USER trace file for more detail.
    2019-07-09T04:06:32.180821+08:00
    LMON (ospid: 330811) drops the IMR request from LMS1 (ospid: 330817) because IMR is in progress and inst 4 is marked bad.
    2019-07-09T04:06:49.447783+08:00
    Evicting instance 4 from cluster                               <======实例4开始被驱逐
    Waiting for instances to leave: 4
    2019-07-09T04:07:00.267690+08:00
    Dumping diagnostic data in directory=[cdmp_20190709040056], requested by (instance=4, osid=129674 (MMON)), summary=[abnormal instance termination].
    2019-07-09T04:07:08.853865+08:00
    LMON received an instance eviction notification from instance 3
    The instance eviction reason is 0x20000000
    The instance eviction map is 4
    LMON received an instance eviction notification from instance 2
    The instance eviction reason is 0x20000000
    The instance eviction map is 4
    2019-07-09T04:07:09.508223+08:00
    Remote instance kill is issued with system inc 10
    Remote instance kill map (size 1) : 4
    LMON received an instance eviction notification from instance 1
    The instance eviction reason is 0x20000000
    The instance eviction map is 4
    2019-07-09T04:07:12.900020+08:00
    Reconfiguration started (old inc 8, new inc 12)               <======开始做Reconfiguration
    List of instances (total 3) :
     1 2 3
    Dead instances (total 1) :
     4
    My inst 1

    在MOS查询IPC Send timeout detected报错相关的文档有如下
    IPC Send timeout/node eviction etc with high packet reassembles failure (Doc ID 2008933.1)

    Troubleshooting gc block lost and Poor Network Performance in a RAC Environment (Doc ID 563566.1)

    根据Doc ID 2008933.1的描述

    While this is happening, "netstat" shows huge jump of "packet reassembles failed": 

    查询netstat可以看到有大量的packet reassembles failed报错,如下:

    [oracle@BB001 oswnetstat]$ grep -ni 'packet reassembles failed' BB001_netstat_19.07.09.0400.dat
    0508971 packet reassembles failed       <======有问题时存在大量的packet reassembles failed
    0061284 packet reassembles failed
    0595953 packet reassembles failed
    0939239 packet reassembles failed
    0942727 packet reassembles failed
    0946213 packet reassembles failed
    40949641 packet reassembles failed
    40953041 packet reassembles failed
    40956356 packet reassembles failed
    40959776 packet reassembles failed
    40963302 packet reassembles failed
    40966844 packet reassembles failed
    40970388 packet reassembles failed
    40973952 packet reassembles failed
    40977485 packet reassembles failed
    40981039 packet reassembles failed
    40984542 packet reassembles failed
    40988124 packet reassembles failed
    40991680 packet reassembles failed
    40995193 packet reassembles failed
    40998705 packet reassembles failed
    41002205 packet reassembles failed
    41005754 packet reassembles failed
    41009364 packet reassembles failed
    41012851 packet reassembles failed
    41016349 packet reassembles failed
    41019855 packet reassembles failed
    41023392 packet reassembles failed
    41026922 packet reassembles failed
    41030468 packet reassembles failed
    41033983 packet reassembles failed
    41037427 packet reassembles failed
    41040896 packet reassembles failed
    41044446 packet reassembles failed
    41047890 packet reassembles failed
    41051359 packet reassembles failed
    41054771 packet reassembles failed
    41057762 packet reassembles failed
    41061829 packet reassembles failed
    41065435 packet reassembles failed
    41069131 packet reassembles failed
    41069818 packet reassembles failed
    41069818 packet reassembles failed    
    41069820 packet reassembles failed    <======包重组正常
    41069820 packet reassembles failed
    41069820 packet reassembles failed
    41069820 packet reassembles failed
    41069820 packet reassembles failed
    41069820 packet reassembles failed
    41069820 packet reassembles failed
    41069820 packet reassembles failed
    41069820 packet reassembles failed
    41069820 packet reassembles failed
    41069820 packet reassembles failed
    41069820 packet reassembles failed
    41069820 packet reassembles failed
    41069820 packet reassembles failed
    41069820 packet reassembles failed
    41069820 packet reassembles failed
    41069820 packet reassembles failed
    41069820 packet reassembles failed
    41069820 packet reassembles failed
    

          结论

            根据MTU(Maximum Transmission Unit)的尺寸,大的UDP数据包可能被分片,并在多个帧中发送。这些零散的数据包需要在接收节点上重新组合。高CPU使用率(持续的或者是频繁的峰值),过小的reassembly buffer或者UDP buffer也会导致块重组失败。在接收节点’netstat -s’输出的 "IP Statistics"部分提示有大量的Internet Protocol (IP)上的"reassembles failed" 和 "fragments dropped after timeout"信息。分片的报文需要在指定时间(time-to-live)内完成重组(reassemble)。没有能够完成重组的分片报文会被丢弃并要求重传。已经收到,但是由于空间不足没有进行重组的数据分片会被直接丢弃。

    packet reassembles failed失败的解决办法,增加reassemble buffer尺寸,给重组分配更多的空间。方法如下:
    在/etc/sysctl.conf中添加如下两行
    net.ipv4.ipfrag_high_thresh = 16777216 (default = 196608)
    net.ipv4.ipfrag_low_thresh = 15728640  (default = 262144)
    //增加reassemble的时间
    /proc/sys/net/ipv4/ipfrag_time (default = 30)

    使参数生效
    sysctl -p 

    检查是否生效
    sysctl -a|grep ipfrag

    备注
    /proc/sys/net/ipv4/ipfrag_low_thresh,/proc/sys/net/ipv4/ipfrag_low_thresh
    两个文件分别表示用于重组IP分段的内存分配最低值和最高值,一旦达到最高内存分配值,其它分段将被丢弃,直到达到最低内存分配值。

    2、增加MTU的大小,减少数据包分片

    查看当前网卡MTU大小
    ip -s link  | grep mtu | awk '{print $2 $5}'

    修改方法,把mtu修改为9000
    /sbin/ifconfig eth1 mtu 9000

     

    //=========================================

    下面是测试模拟IPC Send timeout detected等待事件的过程

    修改两个节点的sysctl.conf中ipfrag的值
    [root@rac1 ~]# cat /etc/sysctl.conf | grep ipfrag
    net.ipv4.ipfrag_high_thresh = 66670
    net.ipv4.ipfrag_low_thresh = 66570

    修改两个节点私网的MTU大小900

    root@rac1 ~]# ip -s link  | grep mtu | awk '{print $2 $5}'
    lo:16436
    eth0:1500
    eth1:900     <=======大小900    
    pan0:1500
    [root@rac1 ~]# 
    备注:

         eth1为私网网卡

    //模拟gc的产生
    -- 新建测试表1
    create table scott.gc_test1 tablespace users as select * from dba_segments where rownum < 100001;
    -- 插入数据
    begin
    for i in 1..100 loop
    insert into  scott.gc_test1 select * from dba_segments where rownum < 100001;
    commit;
    end loop;
    end;
    /

    -- 新建测试表2、测试表3、测试表4
    create table scott.gc_test2 tablespace users as select * from scott.gc_test1;
    create table scott.gc_test3 tablespace users as select * from scott.gc_test1;
    create table scott.gc_test4 tablespace users as select * from scott.gc_test1;

     

    ## 节点1 update1.sh 脚本
    #/bin/sh
    . ~/.profile

    sqlplus -S / as sysdba << END
    begin
    for i in 1..10 loop
    update scott.gc_test1 set HEADER_FILE = HEADER_FILE + 1 where HEADER_FILE < 100000000;
    dbms_lock.sleep(30);
    commit;
    end loop;
    end;
    /
    exit;
    END

    其中update2.sh、update3.sh、update4.sh脚本和上面类似,把中间的表名替换即可。

     

    ## 节点2 select 脚本

    [oracle@rac2]$cat select1.sh 
    #/bin/sh
    . ~/.bash_profile

    for((i=1;i<=10000000;i++));
    do
    sqlplus scott/tiger << EOF
    select HEADER_FILE,count(*) count from scott.gc_test1 group by HEADER_FILE order by HEADER_FILE;
    exit
    EOF
    done

    其中select2.sh、select3.sh、select4.sh脚本和上面类似,把中间的表名替换即可。

    在节点1调用update1.sh、update2.sh、update3.sh、update4.sh。节点2调用select1.sh、select2.sh、select3.sh、select4.sh脚本,在运行开始后会出现gc等待,因为把mtu、重组包的大小调小了。运行一段时间后就会出现IPC TIMEOUT的情况(ipc timeout出现的时间不一定,有时候需要运行好久也不会出现,这个和测试脚本有关系,如果能模拟更大的gc情况,出现ipc timeout的情况会更容易),同时观察两个节点的等待事件,会发现存在gc lost相关的等待事件。

    节点1数据库alert日志

    Thu Nov 21 13:51:20 2019
    IPC Send timeout detected. Receiver ospid 51038 [oracle@rac1.localdomain (LCK0)]
    Thu Nov 21 13:51:20 2019
    Errors in file /u01/app/oracle/diag/rdbms/devdb/devdb1/trace/devdb1_lck0_51038.trc:
    Thu Nov 21 13:54:41 2019
    IPC Send timeout detected. Receiver ospid 31091 [oracle@rac1.localdomain (PZ99)]
    Thu Nov 21 13:54:41 2019
    Errors in file /u01/app/oracle/diag/rdbms/devdb/devdb1/trace/devdb1_pz99_31091.trc:
    Thu Nov 21 13:58:34 2019
    Time drift detected. Please check VKTM trace file for more details.
    Thu Nov 21 14:00:04 2019
    IPC Send timeout detected. Receiver ospid 51038 [oracle@rac1.localdomain (LCK0)]
    Thu Nov 21 14:00:04 2019
    Errors in file /u01/app/oracle/diag/rdbms/devdb/devdb1/trace/devdb1_lck0_51038.trc:
    Thu Nov 21 14:08:53 2019
    IPC Send timeout detected. Receiver ospid 51038 [oracle@rac1.localdomain (LCK0)]
    Thu Nov 21 14:08:53 2019
    Errors in file /u01/app/oracle/diag/rdbms/devdb/devdb1/trace/devdb1_lck0_51038.trc:
    Thu Nov 21 14:15:16 2019
    IPC Send timeout detected. Receiver ospid 43909 [oracle@rac1.localdomain (PZ99)]
    Thu Nov 21 14:15:16 2019
    Errors in file /u01/app/oracle/diag/rdbms/devdb/devdb1/trace/devdb1_pz99_43909.trc:
    Thu Nov 21 14:16:24 2019
    minact-scn: useg scan erroring out with error e:12751
    Thu Nov 21 14:16:36 2019
    Reconfiguration started (old inc 4, new inc 6)
    List of instances:
     1 (myinst: 1)

    节点2数据库后台日志

    Thu Nov 21 13:51:19 2019
    IPC Send timeout detected. Sender: ospid 8916 [oracle@rac2.localdomain (LCK0)]
    Receiver: inst 1 binc 2 ospid 51038
    Thu Nov 21 13:54:34 2019
    IPC Send timeout detected. Sender: ospid 11348 [oracle@rac2.localdomain (M000)]
    Receiver: inst 1 binc 2 ospid 31091
    Thu Nov 21 14:00:04 2019
    IPC Send timeout detected. Sender: ospid 8916 [oracle@rac2.localdomain (LCK0)]
    Receiver: inst 1 binc 2 ospid 51038
    Thu Nov 21 14:01:39 2019
    Restarting dead background process DIA0
    Thu Nov 21 14:01:39 2019
    DIA0 started with pid=10, OS id=11689
    Thu Nov 21 14:08:48 2019
    IPC Send timeout detected. Sender: ospid 8916 [oracle@rac2.localdomain (LCK0)]
    Receiver: inst 1 binc 2 ospid 51038
    Thu Nov 21 14:13:00 2019
    Restarting dead background process DIA0
    Thu Nov 21 14:13:00 2019
    DIA0 started with pid=10, OS id=11892
    Thu Nov 21 14:15:11 2019
    IPC Send timeout detected. Sender: ospid 11812 [oracle@rac2.localdomain (M000)]
    Receiver: inst 1 binc 2 ospid 43909
    Thu Nov 21 14:16:27 2019
    NOTE: ASMB terminating
    Errors in file /u01/app/oracle/diag/rdbms/devdb/devdb2/trace/devdb2_asmb_8898.trc:
    ORA-15064: communication failure with ASM instance
    ORA-03113: end-of-file on communication channel
    Process ID:

     

    展开全文
  • 2b0e:619 [Vue warn]: Duplicate keys detected: '8'. This may cause an update error. found in ---> at src/user/personSpace.vue at src/App.vue vue.runtime.esm.js?2b0e:619 [Vue warn]: Duplicate keys ...
  • <p>Parsing error: No Babel config file detected for C:\Users\XXXX\About.vue. Either disable config file checking with requireConfigFile: false, or configure Babel so that it can find the config files....
  • 错误描述:Duplicate keys detected. This may cause an update error. 错误直译:检测到重复的键。这可能会导致错误。 错误原因:有相同父元素的多个子元素的v-for有相同的key值。 错误重现步骤: dataList: [ { ...
  • 导入Zip bomb detected

    2021-12-27 09:50:00
    导入excel时文件较大,报zip bomb detected
  • stack corruption detected (-fstack-protector)

    千次阅读 2022-03-10 14:02:10
    编译安卓arm64-v8a的库,运行时,会...2022-03-08 10:02:22.166 24209-24209/com.ulucu.play A/libc: stack corruption detected (-fstack-protector) 2022-03-08 10:02:22.166 24209-24209/com.ulucu.play A/libc: Fa
  • Apparent connection leak detected

    千次阅读 2021-01-26 18:48:30
    pool.all.log.2021012610.gz:java.lang.Exception: Apparent connection leak detected pool.all.log.2021012610.gz: at com.sq.driver.datasource.HikariDatasourceWrap.initDatasource(HikariDatasourceWrap.java:...
  • Android Studio Emulator 报错 detected adb

    千次阅读 2022-02-25 14:05:10
    【情况说明】: 之前Android Studio都用得很好。后来机器上安装过adb。过了一段时间,再运行,就看到编译时有warning。... 其次,在Emulator中关闭 use detected abd 然后,项目clean,重新 rebuild,再run一下即可。
  • 本人在Linux平台做智能影音系统项目的时候,出现了一个“栈错误”*** stack smashing detected ***: ./main terminated 通过在其他博主那里发现这个bug出现在哪里 一、错误类型 如图所示: 二、解决 代码如下...
  • 执行python3 manage.py makemigrations提示:No changes detected 二、解决方案 第一种解决方案:需要在makemigrations后面加应用名称,即python3 manage.py makemigrations App,App是我的应用名称 第二种解决方案...
  • cxx11]() ---------------------- Error Message Summary: ---------------------- FatalError: `Segmentation fault` is detected by the operating system. [TimeInfo: *** Aborted at 1639543591 (unix time) try...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 126,254
精华内容 50,501
关键字:

detected

友情链接: 29. RS485通信实验.zip