yetuge
4a92cb579a
fix(uploads): keep document-conversion stat and write-back off the event loop ( #5830 )
...
* fix(uploads): keep document-conversion stat and write-back off the event loop
convert_file_to_markdown offloads the conversion itself for files above
1 MB (documented in its docstring), but the two bookend filesystem calls
still ran on the event loop: the size stat before the threshold check and
the write of the converted markdown afterwards — the latter a potentially
multi-megabyte write in the per-upload ingestion path. Route both through
run_file_io (the dedicated file IO pool that also keeps the caller's
context), matching the off-the-loop fixes already applied to the sibling
upload/document paths.
Add a tests/blocking_io anchor: with the converter patched to a 2 MB
payload it fails on the previous head (Blockbuster catches the blocking
os.stat first; the broad except swallows it into a None return) and
passes with this change.
* fix(uploads): address review — drain conversion write-back, make run_file_io re-entrant
Review follow-up on the off-loop conversion stat/write PR:
1. The write-back now goes through await_drained(): a plain run_file_io
await cancels immediately while the worker keeps writing, so the
ingestion scope could remove its private directory over an in-flight
write and leave a large hidden partial file. The drain delivers the
cancellation only after the worker settled, and the handler removes
the partial output before re-raising.
2. run_file_io is now re-entrant: a nested offload issued from code
already running inside a file-io worker (project-document conversion
runs asyncio.run(convert_file_to_markdown(...)) inside a run_file_io
worker) executes inline instead of submitting to the same bounded
executor, which deadlocked with a single configured worker.
Both fixes carry deterministic regressions: the cancellation test pins
the drain ordering (cancel issued before the worker is released) and the
partial-file cleanup; the re-entrancy test pins inline execution by
thread identity. Both fail on the previous head. Full blocking_io +
project-document + conversion suites show an identical failure set to
the previous head (pre-existing Windows platform failures only).
* fix(uploads): keep cancellation authoritative when conversion cleanup fails
If the post-cancellation unlink of the staging output raised, the new
exception escaped the CancelledError handler, was swallowed by the
broad except as an ordinary conversion failure (None return), and left
both the caller's cancellation and the partial file behind. Catch and
log cleanup failures inside the handler and always re-raise the
captured cancellation; a second cancellation still passes through
untouched (CancelledError is not an Exception).
Red/green: tests/blocking_io/test_file_conversion_offloop.py gains a
regression where unlink fails while the write-back is in flight — on
the reviewed head the task settled on None (DID NOT RAISE); with the
change the CancelledError propagates and the failure is logged.
Signed-off-by: yetuge <2219677952@qq.com>
---------
Signed-off-by: yetuge <2219677952@qq.com>
2026-09-25 14:22:34 +08:00
..
2026-09-25 14:22:34 +08:00
2026-09-13 20:28:32 +08:00
2026-07-19 18:26:26 +08:00
2026-09-14 11:01:31 +08:00
2026-05-12 23:18:54 +08:00
2026-09-14 11:10:41 +08:00
2026-07-26 14:43:08 +08:00
2026-09-23 15:37:26 +08:00
2026-06-01 15:50:39 +08:00
2026-09-15 07:26:08 +08:00
2026-09-24 16:36:30 +08:00
2026-09-01 16:49:39 +08:00
2026-07-21 11:46:33 +08:00
2026-09-22 10:38:16 +08:00
2026-06-21 20:56:42 +08:00
2026-06-08 12:35:03 +08:00
2026-09-20 20:03:53 +08:00
2026-07-22 14:47:08 +08:00
2026-08-30 10:30:34 +08:00
2026-07-17 15:11:15 +08:00
2026-09-24 20:39:30 +08:00
2026-09-12 11:09:41 +08:00
2026-09-24 09:35:03 +08:00
2026-09-20 16:31:35 +08:00
2026-09-14 18:17:54 +08:00
2026-09-02 12:34:09 +08:00
2026-09-20 16:31:35 +08:00
2026-09-19 12:14:24 +08:00
2026-09-17 07:55:22 +08:00
2026-09-04 23:46:57 +08:00
2026-09-22 20:48:22 +08:00
2026-09-04 23:46:57 +08:00
2026-09-22 19:49:00 +08:00
2026-09-22 20:48:22 +08:00
2026-06-23 10:39:40 +08:00
2026-09-24 09:35:03 +08:00
2026-09-12 07:12:37 +08:00
2026-09-23 23:26:40 +08:00
2026-09-12 07:41:24 +08:00
2026-05-29 23:05:59 +08:00
2026-09-17 22:13:53 +08:00
2026-05-16 09:24:40 +08:00
2026-04-26 11:08:11 +08:00
2026-09-23 15:37:26 +08:00
2026-08-13 23:55:30 +08:00
2026-08-13 23:55:30 +08:00
2026-09-24 09:08:32 +08:00
2026-09-12 21:01:46 +08:00
2026-08-23 09:57:12 +08:00
2026-07-17 14:49:51 +08:00
2026-07-17 14:49:51 +08:00
2026-09-23 15:37:26 +08:00
2026-07-23 22:51:35 +08:00
2026-07-23 22:51:35 +08:00
2026-09-23 08:33:20 +08:00
2026-06-24 13:57:12 +08:00
2026-09-25 09:51:11 +08:00
2026-09-22 11:18:57 +08:00
2026-09-23 08:33:20 +08:00
2026-09-01 22:36:31 +08:00
2026-09-12 21:09:05 +08:00
2026-09-03 08:17:26 +08:00
2026-09-12 16:20:31 +08:00
2026-08-29 14:36:38 +08:00
2026-08-29 14:36:38 +08:00
2026-08-29 14:36:38 +08:00
2026-08-29 14:36:38 +08:00
2026-08-29 14:36:38 +08:00
2026-08-29 14:36:38 +08:00
2026-08-29 14:36:38 +08:00
2026-08-29 14:36:38 +08:00
2026-08-29 14:36:38 +08:00
2026-09-20 20:01:28 +08:00
2026-07-27 11:47:49 +08:00
2026-09-08 19:21:57 +08:00
2026-09-03 08:17:26 +08:00
2026-09-24 09:35:03 +08:00
2026-09-22 11:18:57 +08:00
2026-09-25 10:22:38 +08:00
2026-07-26 08:00:48 +08:00
2026-08-30 21:25:05 +08:00
2026-09-23 15:40:22 +08:00
2026-09-03 08:04:21 +08:00
2026-09-15 08:14:42 +08:00
2026-09-22 10:43:49 +08:00
2026-09-22 10:43:49 +08:00
2026-09-22 19:47:46 +08:00
2026-09-19 12:14:24 +08:00
2026-08-14 12:35:24 +08:00
2026-08-05 08:29:22 +08:00
2026-08-31 23:18:34 +08:00
2026-09-24 15:16:08 +08:00
2026-08-02 22:25:02 +08:00
2026-07-14 07:37:59 +08:00
2026-09-19 12:14:24 +08:00
2026-09-19 12:14:24 +08:00
2026-06-16 23:04:39 +08:00
2026-06-18 10:15:31 +08:00
2026-09-25 10:00:16 +08:00
2026-09-22 20:43:14 +08:00
2026-08-14 23:29:04 +08:00
2026-09-24 15:11:49 +08:00
2026-09-19 10:29:02 +08:00
2026-07-17 14:49:51 +08:00
2026-06-18 10:45:33 +08:00
2026-09-22 21:53:36 +08:00
2026-09-23 17:58:00 +08:00
2026-08-02 22:25:02 +08:00
2026-08-02 22:25:02 +08:00
2026-08-02 22:25:02 +08:00
2026-08-02 22:25:02 +08:00
2026-07-28 22:12:27 +08:00
2026-08-23 09:57:12 +08:00
2026-07-26 10:44:50 +08:00
2026-09-08 19:21:57 +08:00
2026-09-18 16:46:19 +08:00
2026-09-14 18:17:54 +08:00
2026-07-12 08:15:32 +08:00
2026-09-23 09:18:26 +08:00
2026-08-13 23:55:30 +08:00
2026-08-24 07:37:35 +08:00
2026-09-20 18:57:49 +08:00
2026-03-30 07:41:18 +08:00
2026-04-25 19:40:06 +08:00
2026-04-07 18:21:22 +08:00
2026-07-22 14:02:56 +08:00
2026-09-01 16:49:39 +08:00
2026-09-02 11:54:40 +08:00
2026-07-29 22:16:48 +08:00
2026-05-04 09:56:16 +08:00
2026-09-24 21:03:07 +08:00
2026-09-20 16:08:27 +08:00
2026-08-30 15:37:38 +08:00
2026-08-24 21:48:37 +08:00
2026-06-10 21:36:25 +08:00
2026-08-23 15:08:39 +08:00
2026-09-18 16:59:31 +08:00
2026-09-12 11:24:46 +08:00
2026-07-29 22:24:04 +08:00
2026-08-23 09:57:12 +08:00
2026-09-14 18:17:54 +08:00
2026-09-15 08:25:08 +08:00
2026-09-14 15:05:30 +08:00
2026-09-15 08:25:08 +08:00
2026-09-14 10:51:01 +08:00
2026-09-16 15:37:57 +08:00
2026-04-26 11:05:47 +08:00
2026-07-05 09:54:55 +08:00
2026-03-29 15:31:18 +08:00
2026-09-17 09:35:50 +08:00
2026-09-20 16:08:27 +08:00
2026-08-13 23:55:30 +08:00
2026-09-23 15:37:26 +08:00
2026-08-12 09:25:05 +08:00
2026-08-08 21:07:55 +08:00
2026-09-18 18:32:42 +08:00
2026-09-24 09:45:16 +08:00
2026-09-23 18:29:12 +08:00
2026-07-13 17:57:34 +08:00
2026-06-02 22:43:22 +08:00
2026-06-05 15:21:41 +08:00
2026-07-12 00:17:11 +08:00
2026-07-04 23:09:29 +08:00
2026-06-02 22:43:22 +08:00
2026-07-01 22:49:17 +08:00
2026-09-08 16:11:49 +08:00
2026-09-24 15:16:08 +08:00
2026-07-28 23:21:23 +08:00
2026-09-14 06:55:57 +08:00
2026-07-22 13:55:40 +08:00
2026-07-29 22:33:45 +08:00
2026-09-17 14:53:54 +08:00
2026-07-29 22:33:45 +08:00
2026-09-14 06:55:57 +08:00
2026-09-22 21:59:53 +08:00
2026-06-12 15:24:58 +08:00
2026-09-16 15:29:14 +08:00
2026-09-19 11:10:32 +08:00
2026-08-18 23:14:17 +08:00
2026-09-20 19:29:47 +08:00
2026-09-19 10:40:22 +08:00
2026-09-18 11:32:04 +08:00
2026-08-11 21:52:12 +08:00
2026-09-25 10:22:38 +08:00
2026-04-26 11:09:56 +08:00
2026-09-23 09:53:49 +08:00
2026-09-25 09:08:21 +08:00
2026-09-12 10:59:31 +08:00
2026-09-23 15:40:22 +08:00
2026-08-04 22:33:26 +08:00
2026-09-22 11:18:57 +08:00
2026-09-01 16:49:39 +08:00
2026-08-11 16:33:22 +08:00
2026-09-12 15:59:41 +08:00
2026-09-16 21:18:05 +08:00
2026-08-04 22:33:26 +08:00
2026-08-04 22:33:26 +08:00
2026-08-23 09:57:12 +08:00
2026-09-14 11:01:31 +08:00
2026-09-05 14:03:00 +08:00
2026-08-04 22:33:26 +08:00
2026-08-13 23:55:30 +08:00
2026-09-23 15:25:45 +08:00
2026-09-23 15:25:45 +08:00
2026-08-11 16:33:22 +08:00
2026-08-11 16:33:22 +08:00
2026-08-11 16:33:22 +08:00
2026-09-06 08:39:26 +08:00
2026-09-22 11:18:57 +08:00
2026-08-23 15:08:39 +08:00
2026-09-12 11:24:46 +08:00
2026-09-22 10:38:16 +08:00
2026-07-05 09:54:55 +08:00
2026-09-18 16:59:31 +08:00
2026-09-18 18:32:42 +08:00
2026-09-25 09:08:21 +08:00
2026-09-25 14:22:34 +08:00
2026-09-16 18:46:18 +08:00
2026-09-12 12:50:22 +08:00
2026-09-19 10:08:09 +08:00
2026-09-12 14:28:15 +08:00
2026-09-08 17:06:28 +08:00
2026-07-19 22:12:30 +08:00
2026-09-13 17:23:04 +08:00
2026-07-31 21:57:22 +08:00
2026-07-22 08:33:29 +08:00
2026-09-24 15:56:38 +08:00
2026-09-19 11:23:12 +08:00
2026-09-23 10:24:56 +08:00
2026-09-01 22:04:17 +08:00
2026-09-18 16:59:31 +08:00
2026-09-22 11:18:57 +08:00
2026-09-18 17:19:10 +08:00
2026-09-14 11:01:31 +08:00
2026-08-13 23:55:30 +08:00
2026-09-17 21:26:52 +08:00
2026-08-13 23:55:30 +08:00
2026-08-14 23:50:40 +08:00
2026-08-13 23:55:30 +08:00
2026-09-24 20:38:12 +08:00
2026-09-12 14:32:05 +08:00
2026-09-14 06:55:57 +08:00
2026-07-04 22:56:24 +08:00
2026-07-04 22:56:24 +08:00
2026-07-04 22:56:24 +08:00
2026-08-14 12:35:24 +08:00
2026-07-04 22:56:24 +08:00
2026-07-14 22:56:50 +08:00
2026-07-04 22:56:24 +08:00
2026-09-22 20:48:22 +08:00
2026-07-16 09:12:29 +08:00
2026-07-23 14:32:49 +08:00
2026-07-15 22:30:34 +08:00
2026-09-22 11:02:16 +08:00
2026-09-16 21:30:57 +08:00
2026-06-21 15:55:10 +08:00
2026-08-23 09:57:12 +08:00
2026-03-14 22:55:52 +08:00
2026-08-23 15:46:10 +08:00
2026-08-23 15:08:39 +08:00
2026-09-13 20:28:32 +08:00
2026-09-24 20:16:20 +08:00
2026-07-27 14:05:31 +08:00
2026-09-24 18:00:04 +08:00
2026-07-27 23:07:40 +08:00
2026-03-26 14:20:18 +08:00
2026-09-09 16:31:41 +08:00
2026-09-24 16:30:36 +08:00
2026-07-08 17:10:27 +08:00
2026-09-16 18:46:18 +08:00
2026-09-20 18:57:49 +08:00
2026-07-04 13:54:04 +08:00
2026-06-17 15:29:22 +08:00
2026-08-17 08:16:14 +08:00
2026-09-24 16:36:30 +08:00
2026-09-24 20:02:36 +08:00
2026-09-02 14:19:37 +08:00
2026-09-18 18:32:42 +08:00
2026-09-15 07:28:24 +08:00
2026-09-16 15:18:29 +08:00
2026-09-14 18:24:51 +08:00
2026-09-19 07:44:05 +08:00
2026-09-18 16:59:31 +08:00
2026-09-18 16:59:31 +08:00
2026-09-18 16:59:31 +08:00
2026-09-24 08:42:10 +08:00
2026-08-15 21:20:34 +08:00
2026-08-16 23:54:06 +08:00
2026-09-24 08:42:10 +08:00
2026-09-25 10:00:16 +08:00
2026-09-16 18:39:24 +08:00
2026-09-24 20:39:30 +08:00
2026-09-20 18:57:49 +08:00
2026-07-28 23:21:23 +08:00
2026-09-06 10:21:58 +08:00
2026-09-18 16:59:31 +08:00
2026-09-24 20:30:45 +08:00
2026-09-20 16:57:06 +08:00
2026-09-24 09:08:32 +08:00
2026-04-11 16:52:10 +08:00
2026-07-20 23:33:09 +08:00
2026-09-18 11:30:11 +08:00
2026-09-15 07:31:03 +08:00
2026-09-14 07:30:34 +08:00
2026-09-14 14:05:21 +08:00
2026-07-13 00:01:22 +08:00
2026-09-14 11:01:31 +08:00
2026-09-24 18:04:37 +08:00
2026-04-30 22:27:14 +08:00
2026-05-07 16:15:15 +08:00
2026-09-17 09:36:55 +08:00
2026-07-26 14:43:08 +08:00
2026-09-23 17:58:00 +08:00
2026-08-29 14:54:02 +08:00
2026-09-22 17:53:21 +08:00
2026-09-22 17:53:21 +08:00
2026-09-20 16:13:58 +08:00
2026-08-24 11:04:23 +08:00
2026-08-24 11:04:23 +08:00
2026-09-24 17:19:01 +08:00
2026-09-25 10:28:28 +08:00
2026-09-22 11:15:06 +08:00
2026-09-01 23:24:49 +08:00
2026-09-01 23:24:49 +08:00
2026-04-25 09:18:13 +08:00
2026-09-23 08:33:20 +08:00
2026-09-25 12:47:33 +08:00
2026-08-31 15:07:30 +08:00
2026-08-31 15:07:30 +08:00
2026-09-14 18:07:21 +08:00
2026-07-09 16:26:31 +08:00
2026-07-09 16:26:31 +08:00
2026-07-28 22:59:14 +08:00
2026-09-13 17:13:45 +08:00
2026-09-23 08:33:20 +08:00
2026-08-05 08:56:18 +08:00
2026-09-23 08:33:20 +08:00
2026-08-15 14:26:38 +08:00
2026-09-23 08:33:20 +08:00
2026-09-23 08:33:20 +08:00
2026-09-23 08:33:20 +08:00
2026-09-23 08:33:20 +08:00
2026-09-23 08:33:20 +08:00
2026-09-24 17:19:01 +08:00
2026-09-23 08:33:20 +08:00
2026-09-23 10:20:51 +08:00
2026-09-23 08:33:20 +08:00
2026-08-15 14:26:38 +08:00
2026-09-23 08:33:20 +08:00
2026-08-15 14:26:38 +08:00
2026-07-14 09:49:43 +08:00
2026-09-01 23:24:49 +08:00
2026-09-20 16:43:54 +08:00
2026-09-03 08:00:25 +08:00
2026-08-01 08:39:28 +08:00
2026-08-17 08:20:42 +08:00
2026-09-14 07:22:38 +08:00
2026-09-18 11:32:04 +08:00
2026-07-26 21:16:36 +08:00
2026-07-22 07:46:03 +08:00
2026-09-01 16:49:39 +08:00
2026-09-23 18:29:12 +08:00
2026-09-23 18:29:12 +08:00
2026-07-26 21:16:36 +08:00
2026-09-03 08:00:25 +08:00
2026-09-18 11:32:04 +08:00
2026-09-18 11:32:04 +08:00
2026-09-24 15:38:52 +08:00
2026-09-23 18:29:12 +08:00
2026-08-01 08:39:28 +08:00
2026-07-15 11:21:04 +08:00
2026-08-17 08:20:42 +08:00
2026-09-23 18:29:12 +08:00
2026-07-22 07:46:03 +08:00
2026-09-23 18:29:12 +08:00
2026-09-09 15:52:09 +08:00
2026-08-17 08:20:42 +08:00
2026-07-15 11:21:04 +08:00
2026-09-23 18:29:12 +08:00
2026-09-01 15:26:33 +08:00
2026-07-26 21:16:36 +08:00
2026-08-17 08:20:42 +08:00
2026-09-22 10:38:16 +08:00
2026-09-06 22:50:58 +08:00
2026-09-18 07:29:34 +08:00
2026-09-09 15:52:09 +08:00
2026-09-09 15:52:09 +08:00
2026-07-27 23:07:40 +08:00
2026-09-09 15:52:09 +08:00
2026-08-29 23:50:45 +08:00
2026-09-03 08:17:26 +08:00
2026-09-08 17:00:26 +08:00
2026-09-09 15:52:09 +08:00
2026-09-12 07:35:07 +08:00
2026-09-14 07:25:41 +08:00
2026-09-16 21:18:05 +08:00
2026-09-18 10:48:26 +08:00
2026-09-20 19:11:42 +08:00
2026-09-20 19:11:42 +08:00
2026-09-23 15:37:26 +08:00
2026-09-05 14:10:18 +08:00
2026-07-31 21:57:22 +08:00
2026-09-24 20:39:30 +08:00
2026-09-20 19:28:21 +08:00
2026-07-26 14:43:08 +08:00
2026-09-16 22:07:42 +08:00
2026-09-25 14:06:33 +08:00
2026-09-21 21:45:52 +08:00
2026-09-24 20:39:30 +08:00
2026-07-31 17:55:24 +08:00
2026-07-27 23:07:40 +08:00
2026-08-14 23:50:40 +08:00
2026-09-22 11:38:43 +08:00
2026-06-22 18:55:20 +08:00
2026-08-01 22:19:59 +08:00
2026-09-18 09:03:55 +08:00
2026-06-21 15:47:53 +08:00
2026-09-01 15:51:37 +08:00
2026-09-25 10:22:38 +08:00
2026-08-11 13:56:02 +08:00
2026-09-20 16:43:54 +08:00
2026-07-11 16:05:30 +08:00
2026-09-17 11:35:13 +08:00
2026-09-16 18:46:18 +08:00
2026-09-18 07:29:34 +08:00
2026-05-28 18:24:32 +08:00
2026-06-08 22:04:38 +08:00
2026-03-26 15:07:05 +08:00
2026-06-09 18:01:43 +08:00
2026-07-26 08:09:17 +08:00
2026-06-24 13:57:12 +08:00
2026-09-22 22:17:11 +08:00
2026-09-20 22:42:23 +08:00
2026-09-09 15:52:09 +08:00
2026-06-24 13:57:12 +08:00
2026-07-30 13:51:17 +08:00
2026-09-09 15:52:09 +08:00
2026-09-23 10:14:35 +08:00
2026-09-20 19:19:29 +08:00
2026-09-22 11:36:28 +08:00
2026-09-12 07:35:07 +08:00
2026-08-23 09:57:12 +08:00
2026-09-22 10:59:41 +08:00
2026-05-21 16:22:09 +08:00
2026-09-23 15:37:26 +08:00
2026-07-30 13:51:17 +08:00
2026-09-19 11:26:46 +08:00
2026-09-22 11:18:57 +08:00
2026-09-22 11:18:57 +08:00
2026-09-11 18:41:24 +08:00
2026-09-22 10:38:16 +08:00
2026-09-20 22:38:53 +08:00
2026-08-05 07:43:54 +08:00
2026-08-05 07:43:54 +08:00
2026-09-16 18:46:18 +08:00
2026-09-16 18:46:18 +08:00
2026-09-16 18:46:18 +08:00
2026-09-16 18:46:18 +08:00
2026-09-16 18:46:18 +08:00
2026-09-16 18:46:18 +08:00
2026-09-18 09:05:26 +08:00
2026-09-16 18:46:18 +08:00
2026-09-16 18:46:18 +08:00
2026-09-16 18:46:18 +08:00
2026-09-08 17:00:26 +08:00
2026-09-16 18:46:18 +08:00
2026-07-20 07:24:34 +08:00
2026-09-25 09:51:11 +08:00
2026-04-10 20:40:30 +08:00
2026-08-31 14:35:08 +08:00
2026-09-14 11:10:41 +08:00
2026-09-17 07:45:19 +08:00
2026-09-18 16:59:31 +08:00
2026-09-19 15:09:36 +08:00
2026-07-21 09:23:14 +08:00
2026-09-13 19:55:58 +08:00
2026-09-13 18:04:51 +08:00
2026-09-15 08:25:08 +08:00
2026-07-30 07:53:10 +08:00
2026-08-13 21:20:49 +08:00
2026-09-16 23:57:38 +08:00
2026-09-24 09:43:16 +08:00
2026-09-24 20:39:30 +08:00
2026-08-29 16:56:56 +08:00
2026-03-14 22:55:52 +08:00
2026-09-01 16:49:39 +08:00
2026-09-22 10:56:49 +08:00
2026-09-17 07:45:19 +08:00
2026-09-20 19:07:48 +08:00
2026-06-08 17:32:41 +08:00
2026-06-09 21:58:31 +08:00
2026-09-14 11:10:41 +08:00
2026-07-11 15:58:07 +08:00
2026-09-18 16:55:07 +08:00
2026-08-27 14:59:31 +08:00
2026-08-25 08:22:57 +08:00
2026-06-24 17:47:04 +08:00
2026-07-02 07:43:09 +08:00
2026-04-26 15:09:25 +08:00
2026-09-18 18:32:42 +08:00
2026-09-15 08:45:08 +08:00
2026-09-16 18:46:18 +08:00
2026-09-23 15:25:45 +08:00
2026-09-24 17:49:52 +08:00
2026-09-25 10:06:31 +08:00
2026-09-17 07:38:38 +08:00
2026-09-01 16:49:39 +08:00
2026-05-21 14:48:28 +08:00
2026-09-18 18:32:42 +08:00
2026-07-27 22:27:16 +08:00
2026-08-05 08:56:18 +08:00
2026-09-14 18:17:54 +08:00
2026-08-22 16:53:32 +08:00
2026-09-25 12:43:04 +08:00
2026-09-22 11:02:16 +08:00
2026-08-01 19:42:44 +08:00
2026-09-24 08:11:47 +08:00
2026-06-24 10:24:36 +08:00
2026-09-24 17:34:06 +08:00
2026-09-12 07:41:24 +08:00
2026-09-22 10:38:16 +08:00
2026-07-19 22:12:30 +08:00
2026-09-21 22:06:41 +08:00
2026-07-23 22:56:12 +08:00
2026-09-15 22:22:12 +08:00
2026-05-22 21:20:28 +08:00
2026-08-01 21:44:34 +08:00
2026-09-10 15:01:56 +08:00
2026-08-30 10:30:34 +08:00
2026-09-17 22:33:18 +08:00
2026-09-23 09:53:49 +08:00
2026-06-03 22:02:27 +08:00
2026-09-23 09:53:49 +08:00
2026-09-04 23:46:57 +08:00
2026-09-04 23:46:57 +08:00
2026-04-09 17:21:23 +08:00
2026-09-24 18:11:35 +08:00
2026-09-24 18:11:35 +08:00
2026-09-14 14:05:21 +08:00
2026-06-25 08:06:17 +08:00
2026-09-23 09:53:49 +08:00
2026-09-22 11:16:33 +08:00
2026-09-20 14:34:37 +08:00
2026-09-12 10:54:39 +08:00
2026-09-14 14:05:21 +08:00
2026-07-04 13:54:04 +08:00
2026-06-12 10:20:38 +08:00
2026-09-12 07:35:07 +08:00
2026-07-04 21:51:57 +08:00
2026-09-12 14:59:04 +08:00
2026-09-24 18:06:51 +08:00
2026-07-04 21:51:57 +08:00
2026-08-24 15:38:32 +08:00
2026-09-12 07:35:07 +08:00
2026-09-16 19:56:01 +08:00
2026-08-24 15:38:32 +08:00
2026-09-10 16:46:01 +08:00
2026-07-04 21:51:57 +08:00
2026-09-14 14:09:27 +08:00
2026-09-10 16:46:01 +08:00
2026-09-12 07:35:07 +08:00
2026-09-12 07:35:07 +08:00
2026-09-12 07:35:07 +08:00
2026-08-24 07:09:08 +08:00
2026-09-16 21:18:05 +08:00
2026-09-24 17:51:31 +08:00
2026-08-24 21:27:43 +08:00
2026-06-19 11:23:07 +08:00
2026-03-26 14:20:18 +08:00
2026-07-21 08:15:33 +08:00
2026-08-28 10:30:30 +08:00
2026-08-28 10:44:30 +08:00
2026-09-14 06:55:57 +08:00
2026-09-14 06:55:57 +08:00
2026-07-07 23:09:06 +08:00
2026-07-23 08:03:21 +08:00
2026-05-12 23:18:54 +08:00
2026-07-23 08:03:21 +08:00
2026-09-24 15:10:25 +08:00
2026-09-24 20:39:30 +08:00
2026-06-19 21:57:03 +08:00
2026-09-17 07:59:58 +08:00
2026-07-04 11:27:19 +08:00
2026-09-24 15:47:33 +08:00
2026-09-02 17:05:36 +08:00
2026-09-22 17:27:01 +08:00
2026-09-12 14:32:05 +08:00
2026-07-31 17:55:24 +08:00
2026-07-13 10:40:22 +08:00
2026-09-08 09:21:38 +08:00
2026-09-05 14:03:00 +08:00
2026-08-31 14:35:08 +08:00
2026-09-23 10:10:30 +08:00
2026-09-24 20:52:58 +08:00
2026-09-14 11:01:31 +08:00
2026-07-11 15:58:07 +08:00
2026-08-25 19:46:04 +08:00
2026-08-28 08:58:59 +08:00
2026-09-24 17:49:52 +08:00
2026-03-25 16:28:33 +08:00
2026-09-22 22:39:49 +08:00
2026-09-18 08:02:52 +08:00
2026-09-22 22:55:12 +08:00
2026-09-19 12:14:24 +08:00
2026-08-28 08:58:59 +08:00
2026-09-24 15:47:33 +08:00
2026-07-17 23:22:16 +08:00
2026-09-18 08:02:52 +08:00
2026-09-24 15:47:33 +08:00
2026-09-23 10:16:19 +08:00
2026-09-25 08:56:39 +08:00
2026-07-08 21:58:33 +08:00
2026-09-24 17:49:52 +08:00
2026-09-08 10:50:03 +08:00
2026-09-25 09:51:11 +08:00
2026-03-30 16:02:23 +08:00
2026-09-08 14:40:05 +08:00
2026-07-31 17:25:07 +08:00
2026-07-22 09:20:54 +08:00
2026-08-30 10:46:01 +08:00
2026-09-25 12:43:04 +08:00
2026-09-01 15:51:37 +08:00
2026-09-08 16:11:49 +08:00
2026-09-23 08:33:20 +08:00
2026-09-23 08:33:20 +08:00
2026-08-25 07:49:38 +08:00
2026-08-25 07:49:38 +08:00
2026-09-16 22:05:20 +08:00
2026-06-14 10:30:45 +08:00
2026-09-12 16:20:31 +08:00
2026-06-08 23:17:22 +08:00
2026-07-14 08:14:21 +08:00
2026-09-02 11:54:40 +08:00
2026-09-25 12:43:04 +08:00
2026-09-15 22:22:12 +08:00
2026-08-24 11:04:23 +08:00
2026-08-30 11:39:25 +08:00
2026-07-30 07:21:55 +08:00
2026-09-18 14:27:33 +08:00
2026-05-02 06:37:49 +08:00
2026-09-01 16:13:41 +08:00
2026-07-11 15:41:57 +08:00
2026-07-13 19:26:07 +08:00
2026-06-19 21:42:42 +08:00
2026-09-17 09:05:25 +08:00
2026-08-24 11:04:23 +08:00
2026-09-24 16:11:46 +08:00
2026-09-24 16:11:46 +08:00
2026-09-15 22:10:39 +08:00
2026-09-08 16:00:45 +08:00
2026-07-27 11:47:49 +08:00
2026-07-27 11:47:49 +08:00
2026-08-01 19:42:44 +08:00
2026-09-14 06:55:57 +08:00
2026-09-14 11:01:31 +08:00
2026-08-23 09:57:12 +08:00
2026-09-19 10:56:21 +08:00
2026-09-23 08:33:20 +08:00
2026-05-21 21:18:10 +08:00
2026-09-18 07:25:49 +08:00
2026-08-23 10:27:19 +08:00
2026-08-27 18:12:05 +08:00
2026-09-22 21:10:27 +08:00
2026-09-18 07:29:34 +08:00
2026-09-06 22:30:26 +08:00
2026-09-25 14:18:09 +08:00
2026-09-16 18:46:18 +08:00
2026-08-01 19:42:44 +08:00
2026-07-27 22:46:51 +08:00
2026-08-11 22:00:57 +08:00
2026-09-09 15:52:09 +08:00
2026-09-19 10:18:13 +08:00
2026-09-12 07:41:24 +08:00
2026-07-29 12:47:30 +08:00
2026-09-09 14:56:31 +08:00
2026-09-18 09:39:14 +08:00
2026-09-09 14:56:31 +08:00
2026-06-02 22:43:22 +08:00
2026-09-12 21:01:46 +08:00
2026-09-18 09:39:14 +08:00
2026-07-28 23:21:23 +08:00
2026-09-23 15:37:26 +08:00
2026-09-14 11:10:41 +08:00
2026-07-15 11:21:04 +08:00
2026-03-14 22:55:52 +08:00
2026-09-12 09:22:27 +08:00
2026-09-22 17:45:01 +08:00
2026-09-22 17:45:01 +08:00
2026-09-16 15:52:17 +08:00
2026-07-04 23:14:46 +08:00
2026-05-10 22:00:57 +08:00
2026-08-12 09:25:05 +08:00
2026-07-28 23:21:23 +08:00
2026-09-24 20:30:45 +08:00
2026-09-13 18:04:51 +08:00
2026-09-15 22:22:12 +08:00
2026-08-22 16:53:32 +08:00
2026-09-18 16:59:31 +08:00
2026-07-04 11:27:19 +08:00
2026-09-18 16:59:31 +08:00
2026-09-16 23:57:38 +08:00
2026-09-16 15:52:17 +08:00
2026-09-15 08:45:08 +08:00
2026-08-29 16:56:56 +08:00
2026-08-29 16:56:56 +08:00
2026-09-15 08:45:08 +08:00
2026-09-01 09:49:32 +08:00
2026-07-14 09:49:43 +08:00
2026-08-23 09:57:12 +08:00
2026-09-01 16:49:39 +08:00
2026-09-01 16:49:39 +08:00
2026-09-01 16:49:39 +08:00
2026-07-14 08:58:06 +08:00
2026-07-14 08:58:06 +08:00
2026-07-03 08:01:46 +08:00
2026-09-16 18:46:18 +08:00
2026-08-25 20:15:08 +08:00
2026-08-04 08:33:10 +08:00
2026-08-13 23:55:30 +08:00
2026-09-18 07:48:24 +08:00
2026-06-25 20:10:49 +08:00
2026-06-25 20:10:49 +08:00
2026-06-25 20:10:49 +08:00
2026-06-25 20:10:49 +08:00
2026-06-25 20:10:49 +08:00
2026-06-25 20:10:49 +08:00
2026-06-25 20:10:49 +08:00
2026-06-25 20:10:49 +08:00
2026-07-15 22:27:00 +08:00
2026-06-25 20:10:49 +08:00
2026-08-05 08:15:28 +08:00
2026-07-20 23:56:37 +08:00
2026-09-24 18:20:31 +08:00
2026-09-24 18:20:31 +08:00
2026-05-12 23:18:54 +08:00
2026-09-12 11:09:41 +08:00
2026-07-26 21:16:36 +08:00
2026-07-26 21:16:36 +08:00
2026-09-22 20:43:14 +08:00
2026-07-28 22:59:14 +08:00
2026-09-24 19:37:49 +08:00
2026-07-28 22:59:14 +08:00
2026-09-03 08:17:26 +08:00
2026-09-24 20:39:30 +08:00
2026-09-22 22:55:12 +08:00
2026-07-11 09:18:12 +08:00
2026-09-19 10:56:21 +08:00
2026-05-02 15:16:16 +08:00
2026-08-13 23:55:30 +08:00
2026-08-23 15:43:37 +08:00
2026-09-24 20:38:12 +08:00
2026-09-10 15:48:55 +08:00
2026-09-24 20:38:12 +08:00
2026-09-24 20:38:12 +08:00
2026-09-10 15:48:55 +08:00
2026-07-24 13:12:43 +08:00
2026-07-28 19:56:40 +08:00
2026-07-27 07:13:06 +08:00
2026-07-06 07:21:12 +08:00
2026-07-20 23:05:47 +08:00
2026-09-11 18:36:58 +08:00
2026-09-08 10:50:03 +08:00
2026-09-16 16:33:47 +08:00
2026-09-20 17:21:49 +08:00
2026-09-12 09:59:58 +08:00
2026-07-12 07:52:45 +08:00
2026-09-01 16:49:39 +08:00
2026-09-14 07:17:51 +08:00
2026-07-12 11:51:31 +08:00
2026-09-14 18:17:54 +08:00
2026-09-08 14:51:57 +08:00
2026-09-20 19:28:21 +08:00
2026-06-07 17:47:11 +08:00