它们启动后,新的子进程失败,出现0xc0000142(或0xc06d007e)错误 [英] New child processes failed with 0xc0000142 (or 0xc06d007e) error after they are launched

查看:165
本文介绍了它们启动后,新的子进程失败,出现0xc0000142(或0xc06d007e)错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,我在Win2008 Server R2 64位操作系统上有一些服务器进程,它为客户端启动了许多子进程,并且


有时新的子进程开始失败,并且 0xc0000142
exitcode(或.cn应用程序的0xc06d007e)在加载DLL-s后立即启动它们。这样的进程没有从main exe模块到达main()函数。它不是由较低级别的桌面堆引起的,因为我们增加它并且在关键时间内90%
桌面堆是免费的。

当子进程的启动开始失败时,所有子进程失败了同样的错误。甚至来自另一个开发人员的简单控制台应用程序也无法以相同的错误启动和退出(此控制台应用程序在与主服务器应用程序相同的Windows会话
中运行)。当许多正在运行的子进程减少时,错误消失,一切正常。我想有一些系统资源耗尽但我不知道它是什么。

主服务器和子进程是32位应用程序。主服务器应用程序有大约200-500个子进程同时运行。当这种情况发生时,可能会有大约10000到20000个进程启动并完成大约5个小时。


子进程与主服务器进程通过管道进行通信(每个子进程使用4个管道和2个同步事件)。因为这个子进程从主服务器进程继承句柄。


有人知道应该出错的是什么吗?
b

谢谢你,


Petr Penas


以下是问题发生时系统的快照:



服务器会话



 桌面堆大小:     3145728(0x  300000)字节

 承诺:              380928  (0x   5d000)字节

 未提交:            2764800(0x  2a3000)字节

 分配:              367848  (0x   59ce8)字节

 总释放              13080   (0x    3318)字节

 未使用:                  2777880(0x  2a6318)字节

 使用率:                       (        11)%


$
***虚拟内存使用***

    物理记忆:    15728510(  62914040 Kb)



************没有写入文件************ *********
$


MiSystemVaTypeCount未实现的错误

    可用页面:     5466841(  21867364 Kb)

     ResAvail页面:     15227274(  60909096 Kb)

    锁定的IO页面:           0(         0 Kb)

    免费系统PTE:   33554639(134218556 Kb)

    已修改的页面:         5181(     20724 Kb)

    修改过的PF页面:      5176(     20704 Kb)

     NonPagedPool 0已使用:       0(         0 Kb)

     NonPagedPoolNx 0使用:67246(    268984 Kb)

     NonPagedPool 1已使用:       0(         0 Kb)

     NonPagedPoolNx 1使用:22889(     91556 Kb)

     NonPagedPool 2已使用:       0(         0 Kb)

     NonPagedPoolNx 2使用:17254(     69016 Kb)

     NonPagedPool 3已使用:       0(         0 Kb)

     NonPagedPoolNx 3使用:22112(     88448 Kb)

     NonPagedPool用法:33666032(134664128 Kb)

     NonPagedPoolNx用法:143368(    573472 Kb)

     NonPagedPool Max:   11757539(  47030156 Kb)

     **********过多的非分页池使用情况*****

     PagedPool 0用法:    126752(    507008 Kb)

     PagedPool 1用法:     30288(    121152 Kb)

     PagedPool 2用法:      4856(     19424 Kb)

     PagedPool 3用法:      6881(     27524 Kb)

     PagedPool 4用法:      7918(     31672 Kb)

     PagedPool用法:      176695(    706780 Kb)

     PagedPool最高:  33554432(134217728 Kb)

    共享提交:         24610(     98440 Kb)

    特殊池:              0(         0 Kb)

    共享流程:        77535(    310140 Kb)

     PagedPool提交:     176841(    707364 Kb)

    司机提交:          3772(     15088 Kb)

    承诺页面:    10298563(  41194252 Kb)

    提交限制:       15728044(  62912176 Kb)


解决方案


当一些正在运行的子进程减少时,错误消失,一切正常。我想有一些系统资源耗尽但我不知道是哪一个。


您是否尝试过子进程调试电动工具?  http://blogs.msdn.com /b/visualstudioalm/archive/2014/11/24/introducing-the-child-process-debugging-power-tool.aspx


您还可以使用Process Monitor监控Windows中的资源:  https://technet.microsoft.com/ en-us / sysinternals / bb896645.aspx?f = 255& MSPPError = -2147217396


Hello, I have some server process on Win2008 Server R2 64bit OS which starts many subprocesses for clients and
sometimes new child processes start to fail with 0xc0000142 exitcode (or 0xc06d007e for .net apps) right after their are launched in the moment while loading DLL-s. Such process didn't reach the main() function from main exe module. It's not caused by lower level of desktop heap, because we increase it and 90% desktop heap is free in the critical time.
When start of child processes begins to fail, all child processes fail on the same error. And even simple console application from the another developers could not starts and exits with the same error (this console application runs in the same windows session as the main server app). When a number of running child processes is decreased, error disappear and everything works fine. I suppose there is some system resource exhausted but I have no idea which is it.
Main server and child processes are 32bit applications. Main server app has about 200-500 child processes running at the same time. It could be about 10000 - 20000 processes started and finished for about 5 hours when this situation occurs.
Child processes communicates with main server process with pipes (each child process uses 4 pipes and 2 synchronization events). Because of this child processes inherits handles from main server process.
Does somebody have idea what should be wrong?

Thanks

Petr Penas

Here is the snapshot of system when the problem occurred:

Server session

  Desktop Heap Size:    3145728 (0x  300000) Bytes
  Committed:              380928  (0x   5d000) Bytes
  UnCommitted:            2764800 (0x  2a3000) Bytes
  Allocated:              367848  (0x   59ce8) Bytes
  Total Freed              13080   (0x    3318) Bytes
  Unused:                  2777880 (0x  2a6318) Bytes
  Used Rate:                       (        11)%

*** Virtual Memory Usage ***
    Physical Memory:    15728510 (  62914040 Kb)

************ NO PAGING FILE *********************

Unimplemented error for MiSystemVaTypeCount
    Available Pages:     5466841 (  21867364 Kb)
    ResAvail Pages:     15227274 (  60909096 Kb)
    Locked IO Pages:           0 (         0 Kb)
    Free System PTEs:   33554639 ( 134218556 Kb)
    Modified Pages:         5181 (     20724 Kb)
    Modified PF Pages:      5176 (     20704 Kb)
    NonPagedPool 0 Used:       0 (         0 Kb)
    NonPagedPoolNx 0 Used: 67246 (    268984 Kb)
    NonPagedPool 1 Used:       0 (         0 Kb)
    NonPagedPoolNx 1 Used: 22889 (     91556 Kb)
    NonPagedPool 2 Used:       0 (         0 Kb)
    NonPagedPoolNx 2 Used: 17254 (     69016 Kb)
    NonPagedPool 3 Used:       0 (         0 Kb)
    NonPagedPoolNx 3 Used: 22112 (     88448 Kb)
    NonPagedPool Usage: 33666032 ( 134664128 Kb)
    NonPagedPoolNx Usage: 143368 (    573472 Kb)
    NonPagedPool Max:   11757539 (  47030156 Kb)
    ********** Excessive NonPaged Pool Usage *****
    PagedPool 0 Usage:    126752 (    507008 Kb)
    PagedPool 1 Usage:     30288 (    121152 Kb)
    PagedPool 2 Usage:      4856 (     19424 Kb)
    PagedPool 3 Usage:      6881 (     27524 Kb)
    PagedPool 4 Usage:      7918 (     31672 Kb)
    PagedPool Usage:      176695 (    706780 Kb)
    PagedPool Maximum:  33554432 ( 134217728 Kb)
    Shared Commit:         24610 (     98440 Kb)
    Special Pool:              0 (         0 Kb)
    Shared Process:        77535 (    310140 Kb)
    PagedPool Commit:     176841 (    707364 Kb)
    Driver Commit:          3772 (     15088 Kb)
    Committed pages:    10298563 (  41194252 Kb)
    Commit limit:       15728044 (  62912176 Kb)

解决方案

When a number of running child processes is decreased, error disappear and everything works fine. I suppose there is some system resource exhausted but I have no idea which is it.

Have you tried Child Process Debugging Power Tool? http://blogs.msdn.com/b/visualstudioalm/archive/2014/11/24/introducing-the-child-process-debugging-power-tool.aspx

You can also use Process Monitor to monitor resources in Windows: https://technet.microsoft.com/en-us/sysinternals/bb896645.aspx?f=255&MSPPError=-2147217396


这篇关于它们启动后,新的子进程失败,出现0xc0000142(或0xc06d007e)错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆