问题标签 [deadline-timer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
91 浏览

c++ - 提升deadline_timer导致堆栈缓冲区溢出

在过去的几天里,我一直被 Boost Deadline_timer 困在一个非常奇怪的错误上。桌面:Ubuntu 18.04 升压:v1.65.01

当我在类 AddressSanitizer 的构造函数中创建一个新的deadline_timer 时,会捕获来自Boost 库内部的堆栈缓冲区溢出。

我有几点意见:

  • 我还注意到,如果没有 AddressSanitizer,就会出现问题,因为计时器总是超时,因为 expiry_time 为负数,或者永不过期。因此,似乎某个地方有人正在更改该内存区域。
  • 我正在使用的类非常大,并且使用相同的 Boost io_service 通过 UDP 发送数据。
  • 我无法仅在独立的源文件中重现该错误。
  • 当我删除代码以隔离问题时,无论我删除多少代码,问题仍然存在。我只创建了一个主文件,创建了一个 io_service 和一个 deadline_timer,但它仍然会抛出该错误。如果我在另一个文件中复制它并复制 CMakeLists 条目,我仍然无法重现它。

类的结构不是很复杂,这里有一个示例类,它基本上执行相同的 udp_timer.hpp

udp_timer.cpp

这放置在程序中足以产生该错误。

从这个错误打印输出看来,Boost 库中似乎存在一个错误,它将 16 个字节写入仅分配了 8 个字节的东西。但为什么会如此断断续续地浮出水面呢?我还注意到我们有几个词被标记为 stack-use-after-scope ,即 f8。这是否意味着程序的另一部分在超出范围后使用指向堆栈分配对象的指针?

与 valgrind 一起运行给了我这个

我真的迷路了。我对源代码所做的更改与结果行为之间实际上没有任何联系。我可以通过删除包含一个完全不相关的头文件来消除错误。但是,当包含带有一些函数定义和枚举的 mock_header 时,错误再次出现。所以当这个错误出现时,它似乎真的是随机的。

对于如何解决此类问题的任何建议,我将非常高兴。

我非常感谢您对此的任何建议

0 投票
0 回答
62 浏览

kubernetes - activeDeadlineSeconds 但仅适用于容器运行的时间

在 kubernetes 集群中,我想设置允许 pod 中的容器运行多长时间的期限(容器将运行完成)。

我知道activeDeadlineSeconds,但是当设置时,时钟在 pod 启动时开始滴答作响,而不是容器。这意味着通过拉取容器映像、安装卷等需要一些可变的时间。

对于我的应用程序,我想排除这个时间开销并设置一个截止日期,从容器开始运行时开始。我观察到容器可能需要不同的时间才能开始运行,因此添加恒定的时间activeDeadlineSeconds对我来说不起作用。此外,我无法修改容器或向其中注入任何东西,它们需要按照第 3 方提供的方式运行。

是否有可能实现这种行为?

0 投票
1 回答
37 浏览

php - 如何在php中计算月份截止日期

我正在开发一个系统,该系统允许用户将自己持续时间的月数设置为项目的截止日期。我现在面临的问题是如何计算从他们提交项目之日到截止日期的持续时间。

这是用户可以设置其月份持续时间的输入:

这就是我想做的,只是为了说清楚:

*假设用户在持续时间输入上设置了 9 个月。

*因为今天是 2021 年 9 月,因为我发布了这个问题。该项目将于本月启动,截止日期为2022年6月。

我已经对此进行了搜索,但找不到正确的解决方案,或者我只是不知道要搜索的正确关键字。

0 投票
1 回答
13 浏览

boost - 如何在类定义中声明多个截止时间计时器?

我设法在课堂上声明了一个截止日期计时器。

所以构造能够构造t0。如何修改它以具有另一个截止时间_计时器 t1。后续的构造会是什么样子?