-
Notifications
You must be signed in to change notification settings - Fork 432
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Error: 仅完成部分的 ReadProcessMemory 或 WriteProcessMemory 请求。 (os error 299) #728
Comments
I am getting the same error:
python 3.12 |
Here's my code, function
import os
import re
from typing import List
def find_urls_from_text(text: str) -> List[str]:
"""
get websites from urls
:param text:
:return:
"""
url_pattern = (
r'(?i)\b((?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?«»“”‘’]))'
)
# 查找所有匹配项
urls = re.findall(url_pattern, text, re.IGNORECASE)
# 提取完整的网址
cleaned_urls = [''.join(match[0].split()) for match in urls]
return cleaned_urls
print(os.getpid())
s = '中国政府采购网(http://www.ccgp.gov.cn)、广西壮族自治区政府采购网(http://zfcg.gxzf.gov.cn)、广西壮族自治区招标投标公共服务平台(http://zbtb.gxi.gov.cn:9000/)、全国公共资源交易平台(广西·百色)+(http://ggzy.jg+swj.gxzf.gov.cn/bsggzy/)、广西百色市住房和城乡建设局(http://zjj.baise.gov.cn)上发布'
res = find_urls_from_text(s)
print(res) |
Same here. It's because of Python version. Py-spy doesn't support python 3.12 or 3.13 for sure yet. I can confirm that it works for Python 3.5. Also you can see Python 3.6 example in README.md file. But I don't know what is the maximum python version supported. This error may be Windows only. |
I agree the reason for the issue is python 3.12. I have been able to use py-spy fine on Windows with python 3.10. However, py-spy seems to be currently claiming to have python 3.12 and 3.13 support (See 0.4.0 release notes https://github.com/benfred/py-spy/releases/tag/v0.4.0). Such support many be Linux / MacOS only. If that is the case it should be clearly stated to users. |
@benfred hey, I had a debugging session today. Something is off with the GIL retrieval routines. I suspect it is something related to atomic pointers, or rather the way we read them. addr always ends up being diff --git a/src/stack_trace.rs b/src/stack_trace.rs
index cbfc51d..e271968 100644
--- a/src/stack_trace.rs
+++ b/src/stack_trace.rs
@@ -291,7 +291,7 @@ pub fn get_gil_threadid<I: InterpreterState, P: ProcessMemory>(
let addr: usize = process.copy_struct(threadstate_address)?;
// if the addr is 0, no thread is currently holding the GIL
- if addr != 0 {
+ if addr != 0 && addr != 0x100000000 {
let threadstate: I::ThreadState = process.copy_struct(addr)?;
return Ok(threadstate.thread_id());
} |
My Python version is 3.12.7
I use Windows 11
I run a python program in pycharm:
then print the process id: 58396
then I input "py-spy top --pid 58396"
then Error occured:
What's the promblems.
Thanks for your reply~
The text was updated successfully, but these errors were encountered: