william.chen

Results 8 issues of william.chen

![image](https://user-images.githubusercontent.com/1276668/100429465-5312bd80-30d0-11eb-9c72-570bbea16f22.png) noTimeoutLock 上锁后,尝试wakeup协程,这时候,可能协程正好超时唤醒了,wakup调用失败,没有更新数据。 也就是timedpop调用返回了true, 但是数据并没有取回。 暂时解决办法: 把noTimeoutLock 上锁逻辑移动到Processer::Wakeup的回调函数中。

我看到hook中有使用了g_dns_mtx, 来保证同一线程下多个协程的dns查询顺序执行,但仍会出现异常。 这个g_dns_mtx 是使用的线程局部变量,会不会协程调度到其它线程后,无法保证安全? (gdb) p ctx $1 = (const struct resolv_context *) 0x7ffff600a150 (gdb) p *ctx $2 = {resp = 0xd, conf = 0xd, __refcount = 0, __from_res =...

复现代码如下 ` co_chan ch; for (int i = 0; i < 1000; ++i) { go[ch]() { while (1) { int a = -1; ch.TimedPop(a, std::chrono::milliseconds(5)); } }; } co_sched.Start(4); `

@yyzybb537 我这边的场景,会出现任务在进程间频繁调配,一段时间后,会出现协程均无法唤醒的问题。 验证排查时,怀疑是worksteal的问题(之前2.x版本遇到过),将scheduler中相关代码注释掉后,问题解决。 问题出现时,processer都在WaitCondition,堆栈如下: > Thread 7 (Thread 0x7f677987f700 (LWP 8)): #0 0x00007f677b563965 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 #1 0x00007f677b0fa82c in std::condition_variable::wait(std::unique_lock&) () from /lib64/libstdc++.so.6 #2 0x0000000000518e78 in wait (__lock=...,...

` int fclose(FILE* fp) { if (!fclose_f) initHook(); int fd = fileno(fp); HookHelper::getInstance().OnClose(fd); return fclose_f(fp); }` 为何单独hook了这个文件关闭函数?

思路是利用线程缓存 ``` int64_t steady_time_now() { using namespace std::chrono; static thread_local int64_t tsc = 0; static thread_local int64_t now = 0; int64_t new_tsc = __builtin_ia32_rdtsc(); if (new_tsc - tsc > 1000...

@yu285 c++客户端连接,连接成功,打印双方版本好正常: I0427 18:07:48.374 719 taos_conn.cc:27] Connected to TDengine, client: 3.2.3.0 I0427 18:07:48.374 719 taos_conn.cc:28] Connected to TDengine, server: ver:3.2.3.0 build:Built Linux-x64 at 2024-02-29 18:01:09 +0800 gitinfo:e27fdcff254b7bd0e0ad2f825e0414da4c0f37dc 但是无法插入数据时,中间卡住20s以上 I0427 18:07:48.374...

help wanted
question