Git hang saat ditekan setelah Total

Saya baru-baru ini menyiapkan VPS dengan Vultr dan menyiapkan repositori git jarak jauh untuk mengunggah proyek saya.

Setelah saya menambahkan remote ke proyek lokal saya dan mencoba melakukan dorongan pertama, remote tersebut hang setelah menampilkan "Total 119 (delta 9), digunakan kembali 0 (delta 0)".

Untuk memberikan sedikit konteks:

  • servernya adalah pengaturan baru Ubuntu 17.04 x64
  • Saya memiliki git versi 2.14.1 secara lokal
  • Saya sudah melakukan ini sebelumnya di VPS lain dengan Vultr (Ubuntu 16.04 x64) dan semuanya berfungsi dengan baik
  • Proyek git lokal sudah diatur dengan benar karena saya memiliki remote di BitBucket tempat saya berhasil mendorong proyek tersebut
  • Saya sudah mencoba menambah ukuran buffer, seperti yang direkomendasikan pada pertanyaan serupa lainnya
  • Saya mencoba mengunggah proyek Laravel kecil yang baru - tidak ada file khusus atau besar (setiap file berukuran di bawah 1MB)
  • Saya telah memperbarui versi git saya ke versi terbaru yang tersedia (dari 2.12 ke 2.14), seperti yang direkomendasikan pada pertanyaan serupa lainnya
  • koneksi SSH saya berfungsi dengan baik dan saya bahkan sudah mengaturnya dengan Debug Level 3, jadi sangat bertele-tele (saya punya log di bawah)
  • repositori jarak jauh tampaknya sudah diatur dengan benar (Saya telah mencoba membuat jarak jauh tambahan, menunjuk ke repo yang tidak ada di server yang sama, menggunakan koneksi SSH yang sama dan saya mendapatkan pesan kesalahan yang tepat dari GIT yang tidak dapat ditemukan repo)
  • Saya sudah menyiapkan repo dengan dan tanpa --shared, tetapi hasilnya sama
  • Saya bahkan sudah menunggu (lebih dari 8 jam) dan tidak terjadi apa-apa, tidak ada pesan error, masih hang
  • Saya telah mencoba setiap solusi lain yang dapat saya temukan dalam 2 hari mengenai topik ini dan saya masih mendapatkan hasil yang sama (bahkan membuat ulang repo saya beberapa kali, mencoba nama yang berbeda, mencoba chmod 777 untuk repo dan direktori kerja saya di server dll. .)

Berikut adalah bagian dari keluaran ssh verbose di git push (setelah memverifikasi kunci ssh):

debug3: send packet: type 50
debug3: receive packet: type 52
debug1: Authentication succeeded (publickey).
Authenticated to 45.63.116.43 ([45.63.116.43]:22).
debug2: fd 4 setting O_NONBLOCK
debug2: fd 5 setting O_NONBLOCK
debug1: channel 0: new [client-session]
debug3: ssh_session2_open: channel_new: 0
debug2: channel 0: send open
debug3: send packet: type 90
debug1: Requesting [email protected]
debug3: send packet: type 80
debug1: Entering interactive session.
debug1: pledge: network
debug3: receive packet: type 80
debug1: client_input_global_request: rtype [email protected] want_reply 0
debug3: receive packet: type 91
debug2: callback start
debug2: fd 3 setting TCP_NODELAY
debug3: ssh_packet_set_tos: set IP_TOS 0x08
debug2: client_session2_setup: id 0
debug1: Sending command: git-receive-pack '/var/repo/hc-teaser.git'
debug2: channel 0: request exec confirm 1
debug3: send packet: type 98
debug2: callback done
debug2: channel 0: open confirm rwindow 0 rmax 32768
debug2: channel 0: rcvd adjust 2097152
debug3: receive packet: type 99
debug2: channel_input_status_confirm: type 99 id 0
debug2: exec request accepted on channel 0
Counting objects: 119, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (104/104), done.
Writing objects: 100% (119/119), 277.89 KiB | 5.91 MiB/s, done.
Total 119 (delta 9), reused 0 (delta 0)
debug2: channel 0: read<=0 rfd 4 len 0
debug2: channel 0: read failed
debug2: channel 0: close_read
debug2: channel 0: input open -> drain
debug2: channel 0: ibuf empty
debug2: channel 0: send eof
debug3: send packet: type 96
debug2: channel 0: input drain -> closed
debug2: channel 0: rcvd adjust 65689

Setelah baris terakhir ini hang tanpa batas waktu.


person Antonio    schedule 20.10.2017    source sumber
comment
Lihatlah pertanyaan ini: stackoverflow.com /pertanyaan/15843937/   -  person jmarks    schedule 05.12.2019


Jawaban (1)


Masalahnya adalah izin folder target yang buruk. Saat saya membuat folder target, saya menggunakan "sudo", jadi pemiliknya disetel ke root. Ketika saya mengubah pemilik folder target menjadi pengguna saya (yang digunakan untuk mendorong repo) dan grup menjadi www-data, semuanya bekerja dengan baik.

Jadi saya telah belajar bahwa ketika git tidak dapat memindahkan file dari repo Anda ke folder target, karena tidak memiliki otorisasi yang tepat, git tidak menampilkan laporan kesalahan apa pun, hanya menunggu tanpa batas waktu.

person Antonio    schedule 06.12.2019