A high-throughput and memory-efficient inference and serving engine for LLMs
Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git
Synced Nov 6, 10:45 UTC
[ROCm] issue management - request information for bug issues on ROCm (#37009)
Signed-off-by: Hongxia Yang <hongxiay.yang@amd.com>
Hongxia Yang committed
Mar 18, 2026 at 23:51 UTC
e3126cd107460444d7fd9a1445b8d4f4393a06b2
1 file changed
+104
-1
.github/workflows/issue_autolabel.yml
+104
-1
@@ -383,4 +383,107 @@ jobs:
383
core.notice(`All users for label "${label}" already mentioned, skipping comment`);
384
}
385
}
386
- }
\ No newline at end of file
386
+ }
387
+
388
+ - name: Request missing ROCm info from issue author
389
+ if: contains(steps.label-step.outputs.labels_added, 'rocm') && contains(toJSON(github.event.issue.labels.*.name), 'bug')
390
+ uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
391
+ with:
392
+ script: |
393
+ const body = (context.payload.issue.body || '').toLowerCase();
394
+
395
+ // Check for existing bot comments to avoid duplicate requests
396
+ const comments = await github.rest.issues.listComments({
397
+ owner: context.repo.owner,
398
+ repo: context.repo.repo,
399
+ issue_number: context.issue.number,
400
+ });
401
+ const botAlreadyAsked = comments.data.some(
402
+ c => c.user.type === 'Bot' && c.body.includes('<!-- rocm-info-request -->')
403
+ );
404
+ if (botAlreadyAsked) {
405
+ core.notice('ROCm info request already posted, skipping');
406
+ return;
407
+ }
408
+
409
+ // Define required information and detection patterns
410
+ const requiredInfo = [
411
+ {
412
+ name: 'Reproducer',
413
+ patterns: [
414
+ /reproduc/i, /minimal.?example/i, /repro\b/i, /steps to reproduce/i,
415
+ /code.?snippet/i, /sample.?code/i,
416
+ /```python[\s\S]*?```/, /```bash[\s\S]*?```/, /```sh[\s\S]*?```/,
417
+ ],
418
+ ask: 'A minimal reproducer (code snippet or script that triggers the issue)',
419
+ },
420
+ {
421
+ name: 'Error message',
422
+ patterns: [
423
+ /error/i, /traceback/i, /exception/i, /fault/i, /crash/i,
424
+ /failed/i, /abort/i, /panic/i,
425
+ ],
426
+ ask: 'The full error message or traceback',
427
+ },
428
+ {
429
+ name: 'Installation method',
430
+ patterns: [
431
+ /docker/i, /rocm\/pytorch/i, /dockerfile/i, /from source/i,
432
+ /pip install/i, /build.?from/i, /container/i, /image/i,
433
+ /wheel/i, /\.whl/i, /nightly/i,
434
+ ],
435
+ ask: 'How you installed vLLM (Docker image name, pip install, or build from source steps)',
436
+ },
437
+ {
438
+ name: 'Command',
439
+ patterns: [
440
+ /vllm serve/i, /python\s+\S+\.py/i, /```bash[\s\S]*?```/,
441
+ /```sh[\s\S]*?```/, /command/i, /launch/i, /run\s/i,
442
+ /--model/i, /--tensor-parallel/i, /--gpu-memory/i,
443
+ ],
444
+ ask: 'The command you used to launch vLLM (e.g., `vllm serve ...` or the Python script)',
445
+ },
446
+ {
447
+ name: 'GFX architecture',
448
+ patterns: [
449
+ /gfx\d{3,4}/i, /mi\d{3}/i, /mi\d{2}\b/i, /radeon/i,
450
+ /gpu.?arch/i, /rocm-smi/i, /rocminfo/i, /navi/i,
451
+ /instinct/i,
452
+ ],
453
+ ask: 'Your GPU model and GFX architecture (e.g., MI300X / gfx942) — run `rocminfo | grep gfx`',
454
+ },
455
+ ];
456
+
457
+ const issueBody = context.payload.issue.body || '';
458
+ const missing = requiredInfo.filter(info =>
459
+ !info.patterns.some(p => p.test(issueBody))
460
+ );
461
+
462
+ if (missing.length === 0) {
463
+ core.notice('All required ROCm info appears to be present');
464
+ return;
465
+ }
466
+
467
+ const author = context.payload.issue.user.login;
468
+ const checklist = requiredInfo.map(info => {
469
+ const found = !missing.includes(info);
470
+ return `- [${found ? 'x' : ' '}] ${info.ask}`;
471
+ }).join('\n');
472
+ const message = [
473
+ '<!-- rocm-info-request -->',
474
+ `Hi @${author}, thanks for reporting this ROCm issue!`,
475
+ '',
476
+ 'To help us investigate, please make sure the following information is included:',
477
+ '',
478
+ checklist,
479
+ '',
480
+ 'Please provide any unchecked items above. This will help us reproduce and resolve the issue faster. Thank you!',
481
+ ].join('\n');
482
+
483
+ await github.rest.issues.createComment({
484
+ owner: context.repo.owner,
485
+ repo: context.repo.repo,
486
+ issue_number: context.issue.number,
487
+ body: message,
488
+ });
489
+ core.notice(`Requested missing ROCm info from @${author}: ${missing.map(m => m.name).join(', ')}`);
\ No newline at end of file