GoogleCloudPlatform / GoogleCloudPlatform/cloud-profiler-python

Wall profile collection error due to line number being None on Python 3.10

オープン
#124 コメント 2 件 リアクション 1 件 担当者 1 名 @aabmass が担当を希望しています GitHub で見る
主要言語
Python
スター
32
フォーク
35
PR マージ指標
30日以内にマージされた PR はありません

説明

Hi, we recently upgraded to Python 3.10 (from Python 3.9) in our service using cloud-profiler-python and are seeing the following error repeatedly in our logs:

```
INFO - warning: Failed to collect and upload profile whose profile type is WALL: Traceback (most recent call last):
INFO - warning: File "/home/appuser/.local/lib/python3.10/site-packages/googlecloudprofiler/client.py", line 293, in _collect_and_upload_profile
INFO - warning: profile_bytes = self._profilers[profile_type].profile(duration_ns)
INFO - warning: File "/home/appuser/.local/lib/python3.10/site-packages/googlecloudprofiler/pythonprofiler.py", line 148, in profile
INFO - warning: return self._serialize_and_clear_traces(duration_ns)
INFO - warning: File "/home/appuser/.local/lib/python3.10/site-packages/googlecloudprofiler/pythonprofiler.py", line 243, in _serialize_and_clear_traces
INFO - warning: profile_builder.populate_profile(self._traces, self._profile_type,
INFO - warning: File "/home/appuser/.local/lib/python3.10/site-packages/googlecloudprofiler/builder.py", line 72, in populate_profile
INFO - warning: location_id = self._location_id(func_id, frame[2])
INFO - warning: File "/home/appuser/.local/lib/python3.10/site-packages/googlecloudprofiler/builder.py", line 131, in _location_id
INFO - warning: line.line = line_number
```

After digging into it, the problem appears to be that the line number in the frame is `None`, which is described in [this issue](https://github.com/python/cpython/issues/94485). The fix appears to have been backported to Python 3.11 but not 3.10, based on the issue comments.

I'm guessing the trace just needs to be discarded somehow if there's no line number but am not sure what the best way to handle this is.

Fortunately, it appears we are still collecting CPU and WALL profiles, but the repeated error messages are annoying.

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。