ลบโปรเจ็คที่ไม่ได้ใช้ใน gitlab แล้ว เจอ Error 500 แก้ปัญหาแบบนี้

แชร์ความรู้ Linux Ubuntu Web Server บทความ การ config server Linux FreeBSD Apache
การติดตั้ง XAMPP Mysql PHP ใครต้องการแชร์ความรู้เรื่องต่างๆ เหล่านี้ให้ ท่านหรืออื่น โพสที่หมวดนี้ได้

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 45904
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

ลบโปรเจ็คที่ไม่ได้ใช้ใน gitlab แล้ว เจอ Error 500 แก้ปัญหาแบบนี้

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ลบโปรเจ็คที่ไม่ได้ใช้ใน gitlab แล้ว เจอ Error 500 แก้ปัญหาแบบนี้
gitlab-Error-del-project.png
gitlab-Error-del-project.png (5.98 KiB) Viewed 38 times
เคสนี้เป็น Project ที่อยู่ใน gitlab 13.12.12
สิ่งที่ควรทำคืออัพเกรดเป็นเวอร์ชั่นล่าสุด ของ
# 0) สำรองก่อน

โค้ด: เลือกทั้งหมด

sudo gitlab-backup create
sudo cp /etc/gitlab/gitlab.rb /root/gitlab_backup_conf/gitlab.rb.bak
sudo cp /etc/gitlab/gitlab-secrets.json /root/gitlab_backup_conf/gitlab-secrets.json.bak

โค้ด: เลือกทั้งหมด

# 1) 13.12.12 -> 13.12.15
sudo apt-get update
sudo apt-get install gitlab-ce=13.12.15-ce.0
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
sudo gitlab-rake gitlab:check SANITIZE=true
ปัญหาที่เจอ จากการกดลบ Project ผ่านหน้า UI
เช็ค Error

โค้ด: เลือกทั้งหมด

sudo tail -f /var/log/gitlab/gitlab-rails/production.log

โค้ด: เลือกทั้งหมด

sudo tail -f /var/log/gitlab/gitlab-rails/sidekiq.log
ตัวอย่างผล Error ที่ได้จากคำสั่งแรก
Started DELETE "/admin/projects/root/phpBB-***" for 171.96.87.*** at 2025-01-05 06:43:40 +0000
Processing by Admin::ProjectsController#destroy as HTML
Parameters: {"authenticity_token"=>"[FILTERED]", "projectName"=>"phpBB-***", "namespace_id"=>"root", "id"=>"phpBB-mtb"}
Completed 500 Internal Server Error in 27ms (ActiveRecord: 4.3ms | Elasticsearch: 0.0ms | Allocations: 6982)

OpenSSL::Cipher::CipherError ():

lib/gitlab/crypto_helper.rb:28:in aes256_gcm_decrypt'
app/models/concerns/token_authenticatable_strategies/
แก้โดย ใช้ gitlab-rails console

โค้ด: เลือกทั้งหมด

sudo gitlab-rails console
หาโปรเจ็กต์ที่ต้องการลบ

โค้ด: เลือกทั้งหมด

p = Project.find_by_full_path("root/phpBB-abc")
# หรือถ้า namespace อื่นอาจเป็น "group-name/project-name"
ถ้า p เป็น nil แปลว่าหาไม่เจอ ให้ตรวจสอบชื่ออีกครั้ง

ตัวอย่างผลที่ได้ที่มี Project อยู่
irb(main):002:0> p = Project.find_by_full_path("root/phpBB-acb")
=> #<Project id:3 root/phpBB-abc>>
นอกจากนี้ยังสามารถค้นหาชื่อโปรเช็คด้วยคำสั่ง ได้ด้วย แล้วสั่ง destroy ได้เหมือนกัน

โค้ด: เลือกทั้งหมด

p = Project.find_by(name: "phpBB-acb")
ดู Deploy Tokens / Runners / อื่น ๆ ที่ผูกกับโปรเจ็กต์

โค้ด: เลือกทั้งหมด

p.deploy_tokens
p.runners
p.personal_access_tokens  # (ปกติจะเป็นของ User, ไม่ใช่ Project)
ถ้ามีรายการ DeployToken หรือ RunnerToken บางตัวที่ GitLab พยายามถอดรหัสแล้วล้มเหลว สามารถลบออกก่อนได้:

โค้ด: เลือกทั้งหมด

p.deploy_tokens.destroy_all
ลบโปรเจ็กต์ผ่าน Rails Console หาก p.destroy ยังเจอ Error อีกแบบเดิม ให้ลบ Token ส่วนอื่น ๆ ซ้ำอีก หรือในกรณีสุดท้ายอาจต้องทำ: ซึ่งเป็นการ ลบออกจาก DB โดยไม่เรียก callback — อาจทิ้งข้อมูลอ้างอิงบางส่วนไว้ แต่จะช่วยปลดล็อกสถานการณ์ (แนะนำให้ลอง p.destroy ก่อน หากไม่สำเร็จจริง ๆ ค่อย p.delete)

เสร็จแล้วออกจาก ออกจาก Rails Console
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 2