মার্চুরিয়াল আটকে আছে "লকের জন্য অপেক্ষা"


346

পার্শ্ববর্তী সংগ্রহস্থলটির ক্লোনিং করার সময় উইন্ডোতে একটি ব্লুজস্ক্রিন পেয়েছে।

রিবুট করার পরে, আমি এখন প্রায় সমস্ত এইচজি কমান্ডের জন্য এই বার্তাটি পাই:

c: \ src \> hg কমিট
সংগ্রহস্থলটিতে লকের জন্য অপেক্ষা করা c: \ src \ McVrsServer '\ x00 \ x00 \ x00 \ x00 \ x00 by দ্বারা অধিষ্ঠিত
x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 '
পান্তাভাত!

গুগল কোন সাহায্য নেই।

কোন টিপস?


3
বাহ, প্রতিশ্রুতি দেওয়ার সময় আমারও একটি ব্লুজস্ক্রিন ছিল এবং একই ত্রুটি পেয়েছি। খুশি আমি একা নই!
সিবিআর

উত্তর:


489

"ভাণ্ডার অন লক জন্য অপেক্ষা" যখন, সংগ্রহস্থল ফাইল মুছুন: .hg/wlock(বা এটি হতে পারে .hg/store/lock)

লক ফাইলটি মোছার সময়, আপনাকে অবশ্যই নিশ্চিত করতে হবে যে অন্য কোনও কিছুই os theos।।। Access access access।। Access access access access access access access access access access access access accessinginginging .ing।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।।। (যদি লকটি শূন্য বা ফাঁকা একটি স্ট্রিং হয়, এটি প্রায় অবশ্যই সত্য)।


103
আমার সমস্যাটির ক্লোনিং বা বিএসওডের সাথে কোনও সম্পর্ক ছিল না তবে আমার জন্য, আমি লকটি সাফ করতে .hg / wlock ফাইলটি মুছলাম।
স্পষ্টভাবে হ্যাডার

32
hg recoverএকটি ভাঙ্গা লকিং পরিস্থিতি পরে চালানো উচিত।
জেমস ব্রডহেড

9
অনেক ধন্যবাদ - .hg / wlock অপসারণের পরে সমস্যাটি কী তা আমার কোনও ধারণা ছিল না
অ্যান্ড্রু বস

34
আমার ক্ষেত্রে (মার্চুরিয়াল ২.7.২ সহ টর্টোসএইচজি ভি ২.৯.২) ফাইলটির নামটি "লক" এর পরিবর্তে "মোড়ক" ছিল; এবং এটি ".hg" ডিরেক্টরিতে স্থাপন করা হয়েছিল, ".hg / স্টোর" এ নয়।
ফার্নান্দো

7
@ মারমুটে - যখনই কোনও পরিবর্তন হতে চলেছে তখন ভাণ্ডার লক হয়ে যায়। যদি কোনও কারণে সেই প্রক্রিয়াটি ব্যর্থ হওয়ার কারণ হয় - যেমন, মার্চুরিয়ালে একটি বাগ, একটি মেশিন ডাউন হয়ে যাওয়া ইত্যাদি - লক ফাইলগুলি পরিষ্কার থাকে না তবে থাকে। আমি বিশ্বাস করি লক ফাইলগুলি ম্যানুয়ালি মুছে ফেলার জন্য এখানে দেওয়া পরামর্শগুলি সেই সব ক্ষেত্রে মোকাবেলা করা যেখানে ভাণ্ডারগুলি কোনওভাবে "অপরিষ্কার" অবস্থায় রেখেছিল। এটিকে "অন্ধভাবে মার্উরিয়াল সুরক্ষা অপসারণ" বলা এই ক্ষেত্রে কী চলছে তার ন্যায্য বা সঠিক বৈশিষ্ট্য নয়।
জোগুস্তো

345

কখন waiting for lock on working directory, মুছুন .hg/wlock


6
এটা আমার ক্ষেত্রে ছিল। এটি বর্তমানের নিক্সের একটি সিমিলিংক ছিল server:pid। একটি গুচ্ছ ধন্যবাদ। তারপরে আমি সম্পাদিত $ hg recoverবিদ্যমান জার্নালটি (& প্রতিশ্রুতিবদ্ধ বার্তা) সাফ করার জন্য আমাকে দৌড়াতে হয়েছিল ctrl+c। নিশ্চিত নয়, তবে আপনি $ hg recoverলকফিলটি মোছা না করে চালাতে সক্ষম হতে পারেন এবং এটি আপনার জন্য এটি করবে। আমি মনে করি একটি শট মূল্যবান।
শোলসিংগার

2
@ শোলসিংজারের জন্য কেবল একটি নোটই বলছেন যে এইচজি রিকভার চলমান কাজ করে না যদি আপনি প্রথমে লকটি সরিয়ে না ফেলে। আমি এটা চেষ্টা করেছি.
ড্যান

1
সংগ্রহের কারণে লক হয়ে যায়, রেপোতে আরও একটি প্রক্রিয়া কাজ করছে। আপনার সেই প্রক্রিয়াটি খুঁজে পাওয়া উচিত এবং অন্ধভাবে মার্উরিয়াল সুরক্ষা অপসারণ করার পরিবর্তে এটিকে সমাপ্ত করা উচিত। কেবল ফাইলটি ফেলে দেওয়ার ফলে সংগ্রহস্থলের দুর্নীতি হতে পারে।
মারমুটে

@ মারমুয়েট আমার ক্ষেত্রে আমাকে লকটি সরিয়ে ফেলতে হয়েছিল, কারণ রেপোতে অন্য কোনও প্রক্রিয়া কাজ করছে না। তবে আমি একমত, প্রথমে অন্য প্রক্রিয়াটি সন্ধান করা মূল্যবান
মি-লা

টানা চেষ্টা করার সময় হঠাৎ এই বার্তাটি পেয়েছি, কয়েকদিন ধরে কোনও সমস্যা ছাড়াই টানা এবং ধাক্কা দেওয়ার পরে। ফাইলটি মোছার পরে সমস্যাটি সমাধান করা হয়েছিল। ফাইলটি 0 কেবি এর যার অর্থ আমি অনুমান করি এটি খালি ছিল। ফাইলটি মুছে ফেলা কি ঠিক আছে? আমার ধারণা এটি সুরক্ষার জন্য কার্যকর।
বেন কার্প

47

কোনও সনাক্তযোগ্য লক ফাইল নিয়ে আমার এই সমস্যা ছিল। আমি এখানে সমাধানটি পেয়েছি: http://schooner.uwaterloo.ca/twiki/bin/view/MAG/HgLockError

এখানে কচ্ছপ এইচজি ওয়ার্কবেঞ্চ কনসোলের একটি প্রতিলিপি

% hg debuglocks
lock:  user None, process 7168, host HPv32 (114213199s)
wlock: free
[command returned code 1 Sat Jan 07 18:00:18 2017]
% hg debuglocks --force-lock
[command completed successfully Sat Jan 07 18:03:15 2017]
cmdserver: Process crashed
PaniniDev% hg debuglocks
% hg debuglocks
lock:  free
wlock: free
[command completed successfully Sat Jan 07 18:03:30 2017]

এর পরে অব্যাহত টানটি সফলভাবে চলল ran

2 বছর আগে লকটি সেট করা হয়েছিল, এমন কোনও মেশিনে প্রক্রিয়া যা ল্যানটিতে নেই। Hg বিকাশকারীদের লজ্জা ক) ক) লকগুলি পর্যাপ্ত পরিমাণে নথিভুক্ত না করা; খ) তারা বাসি হয়ে গেলে স্বয়ংক্রিয়ভাবে সরানোর জন্য তাদের টাইমস্ট্যাম্পিং না করে।


23
প্রতিলিপি: যদি wlockএটি লকড থাকে তবে ব্যবহার করুনhg debuglocks --force-wlock
ব্র্যাড টুরেক

5
আমি 7+ বছর ধরে কচ্ছপ এইচজি ব্যবহার করেছি। আমি প্রায় 3 মাস আগে পর্যন্ত কখনও সমস্যাটি দেখিনি। আমি গত 3 মাসে এটি 3 বার দেখেছি। কিছু আপডেট অবশ্যই সমস্যাটিকে আরও বাড়িয়ে তুলেছে।
d ei

20

বিএসওডি চাপ দেওয়ার চেষ্টা করার পরে সহকর্মীর আজ এই সঠিক সমস্যা ছিল exact সে ছিল:

তারপরে আবার তার রেপো কাজ করে।

সম্পাদনা: @ মারমুয়েটের মন্তব্য অনুসারে - লক-সম্পর্কিত সমস্যাগুলি মোকাবেলা করার সময়, hg debuglockঅন্ধভাবে .hg/store/lockফাইল মোছার জন্য একটি নিরাপদ বিকল্প ।


2
1) নিরবিচ্ছিন্নভাবে কোনও কারণ নেই যে আপনাকে ফেজরুট ফাইলটি স্পর্শ করা উচিত, এটি লকিংয়ের সাথে নিরঙ্কুশভাবে সম্পর্কিত। 2) ওয়াকলোকটি অপসারণ করা অন্ধ দৃষ্টিভঙ্গি একটি খারাপ ধারণা, এটি ব্যবহার করার সম্ভবত আরও একটি প্রক্রিয়া রয়েছে। এটি কী ঘটছে তা নির্ধারণ করতে এবং এই লকটি ধরে রাখার প্রক্রিয়াটি শেষ করতে এইচজি ডিবাগলকটি ব্যবহার করুন
মারময়েট

3
1) বিবেচনা করে যে এটি অপসারণ করলে সমস্যাটি স্থির হয়েছে, আমাকে একমত হতে হবে না। ২) এই সময়ে এইচজি ডিবাগলক সম্পর্কে জানতেন না (এটিতে কোনও ডকুমেন্টেশনও পাওয়া যায় না) এবং যেহেতু সিস্টেমটি কেবল একটি রিবুট থেকে এসেছিল তাই স্পষ্টতই সংগ্রহস্থলটি লক করা হয়নি - তাই লক ফাইলটি মোছা উপযুক্ত ছিল।
ইয়ান কেম্প

12

আমি মার্চুরিয়ালের লকিং কোড (১.৯.২.২০১৮) হিসাবে খুব পরিচিত। উপরের পরামর্শটি ভাল, তবে আমি এটি যুক্ত করব:

  1. আমি এটি বুনোতে দেখেছি, তবে খুব কমই, এবং কেবল উইন্ডোজ মেশিনে।
  2. লক ফাইলগুলি মুছে ফেলা সহজতম সমাধান, তবে আপনাকে নিশ্চিত করতে হবে যে অন্য কোনও কিছুর সন্ধানের অ্যাক্সেস অ্যাক্সেস করছে না। (যদি লকটি শূন্যের একটি স্ট্রিং হয় তবে এটি প্রায় অবশ্যই সত্য)।

(কৌতূহলের জন্য: আমি এখনও এই সমস্যার কারণটি ধরতে সক্ষম হইনি, তবে সন্দেহ হয় এটি মারকুরিয়াল রিপোজিটরি অ্যাক্সেসের পুরানো সংস্করণ বা পাইথনের সকেট.জথোস্টনাম () উইন্ডোজের কয়েকটি সংস্করণে কল করার সমস্যা))


2
এফডব্লিউআইডাব্লু আমার সাথে উবুন্টুতে ঘটেছিল। বেশ কয়েক সপ্তাহের মধ্যে এটি আমার প্রথমবারের মতো সংগ্রহস্থলটি ব্যবহার করা হয়েছিল, তাই আমি মনে করি না যে কী অবস্থায় থাকতে পারে।
কসমোলজিকন

7

উইন on. এ আমার একই সমস্যা ছিল সমাধানটি ছিল নিম্নলিখিত ফাইলগুলি সরানো:

  1. .hg / দোকান / phaseroots
  2. .hg / wlock

.Hg / store / লক হিসাবে - এই জাতীয় কোনও ফাইল ছিল না।


স্ট্যাকওভারফ্লোতে আপনাকে স্বাগতম। পোস্টে আরও বিষয়বস্তু যুক্ত করার চেষ্টা করুন
এনজেআইএনএমদার

5
1) নিরবিচ্ছিন্নভাবে কোনও কারণ নেই যে আপনাকে ফেজরুট ফাইলটি স্পর্শ করা উচিত, এটি লকিংয়ের সাথে নিরঙ্কুশভাবে সম্পর্কিত। 2) ওয়াকলোকটি অপসারণ করা অন্ধ দৃষ্টিভঙ্গি একটি খারাপ ধারণা, এটি ব্যবহার করার সম্ভবত আরও একটি প্রক্রিয়া রয়েছে। ব্যবহার hg debuglockএটা কি ঘটছে জিনিসটা এবং লক অধিষ্ঠিত প্রক্রিয়া বিনষ্ট।
মারমুটে

6

আমি এটি একটি বিজয়ী উত্তর হিসাবে প্রত্যাশা করি না, তবে এটি মোটামুটি অস্বাভাবিক পরিস্থিতি। আমার ব্যতীত অন্য কেউ এতে প্রবেশ করার ক্ষেত্রে উল্লেখ করে।

আজ আমি এইচজি পুশ কমান্ডে "রিপোজিটরিতে লক অন লক" পেয়েছি।

আমি যখন হ্যাং এইচজি কমান্ডটি মেরেছিলাম তখন আমি কোনও .hg / store / লক দেখতে পেতাম না

কমান্ডটি হ্যাং করার সময় আমি যখন .hg / store / লকটির সন্ধান করি তখন এটি বিদ্যমান ছিল। কিন্তু এইচজি কমান্ড নিহত হওয়ার পরে লকফিলটি মুছে ফেলা হয়েছিল।

আমি যখন ধাক্কায় টার্গেটে গিয়েছিলাম এবং এইচজি টান কার্যকর করলাম তখন কোনও সমস্যা নেই।

অবশেষে আমি বুঝতে পেরেছিলাম যে এইচজি পুশের প্রসেস আইডি লক ওয়েটিং মেসেজটি প্রতিবার পরিবর্তন হচ্ছে। দেখা যাচ্ছে যে "এইচজি পুশ" নিজেই আটকে থাকা একটি লকের জন্য অপেক্ষা করছিল (বা সম্ভবত একটি সাবপ্রসেস, আমি আরও তদন্ত করিনি)।

দেখা যাচ্ছে যে দুটি কর্মক্ষেত্র, আসুন তাদের এ এবং বি কল করুন। Hg গাছগুলি সিমলিংকের দ্বারা ভাগ করা হয়েছিল:

A/.hg --symlinked-to--> B/.hg

মার্চুরিয়ালের সাথে এটি করা ভাল জিনিস নয়। মার্চুরিয়াল একই ভান্ডার ভাগ করে নেওয়ার জন্য দুটি কর্মক্ষেত্রের ধারণাটি বুঝতে পারে না। তবে আমি বুঝতে পেরেছি যে অন্য কোনও ভিসিএসের কাছ থেকে কেউ মার্চুরিয়ালে আসার বিষয়টি কীভাবে পেতে পারে (পার্ফোর্স, যদিও ডিভিসিএস নয়; বাজার ডিভিসিএস তা করতে পারে)। আমি অবাক হয়েছি যে একটি সিমলিংকড আরইপি-রুট / .hg মোটেও কাজ করে, যদিও এই ধাক্কাটি বাদে মনে হয়।


এইচজি ট্র্যাক ডার্সেটে প্রবেশ করে না .hg/? আপনি যখন বলছেন যে সংগ্রহস্থলগুলি "কাজ" করে না, hg upতখন কোনওটি ডাইরস্টেটটিকে অন্যটিতে সিঙ্কের বাইরে রাখে না — বা এটিকে সমর্থন করার জন্য পার্থক্যমূলক কোনও বিশেষ কিছু করে না?
বিনিকি

1
একক সংগ্রহস্থল থেকে একাধিক ওয়ার্কিং ডিরেক্টরি পেতে আপনি শেয়ার এক্সটেনশনটি (কোর মার্কুরিয়াল দিয়ে শিপড) ব্যবহার করতে পারেন।
মারমুটে

4

আমারও একই সমস্যা ছিল। আমি প্রতিশ্রুতি দেওয়ার চেষ্টা করার সময় নিম্নলিখিত বার্তাটি পেয়েছি:

waiting for lock on working directory of <MyProject> held by '...'

hg debuglock এটি প্রদর্শিত:

lock:  free
wlock:  (66722s)

সুতরাং আমি নিম্নলিখিত কমান্ডটি করেছি এবং এটি আমার জন্য সমস্যাটি স্থির করেছে:

hg debuglocks -W

উইন 7 এবং কচ্ছপএইচজি 4.8.7 ব্যবহার করে।


2

যদি লক করা রেপোটি আসল ছিল, তবে আমি এটি কলোন করতে এটি পরিবর্তন করে চলেছি তা কল্পনাও করতে পারি না , সুতরাং এটি আপনাকে কেবল এটি মাঝখানে পরিবর্তন করতে এবং ক্লোনটি বিশৃঙ্খলা থেকে আটকাচ্ছে। লকটি অপসারণের পরে এটি ঠিক হওয়া উচিত।

নতুন ক্লোনযুক্ত অনুলিপি (এটি যদি কোনও স্থানীয় ক্লোন হয়) যে কোনও ধরণের ত্রুটিযুক্ত অবস্থাতে থাকতে পারে, তবে আপনাকে এটিকে ছুঁড়ে ফেলে এটিকে আবার শুরু করতে হবে। (যদি এটি কোনও দূরবর্তী ক্লোন হয় তবে আমি আশা করি এটি ব্যর্থ হয়েছে এবং ইতিমধ্যে অসম্পূর্ণ অনুলিপিটি ছুঁড়ে ফেলেছে))


2

আমি ম্যাক ওএস এক্স 10.7.5 এবং মার্কুরিয়াল 2.6.2 এ ধাক্কা দেওয়ার চেষ্টা করার সময় এই সমস্যার মুখোমুখি হয়েছি। মার্চুরিয়াল ৩.২.১-তে উন্নীত করার পরে, আমি "রিপোজিটরিতে লকের অপেক্ষায়" পরিবর্তে "কোনও পরিবর্তন খুঁজে পাইনি"। আমি জানতে পেরেছিলাম যে কোনওরকম ডিফল্ট পাথ একই ধরণের সংগ্রহস্থলের দিকে লক্ষণীয় হয়ে উঠেছে, সুতরাং মার্কুরিয়াল বিভ্রান্ত হবেন এমনটি অবাক হওয়ার কিছু নয়।


1
আমি জানতে পেরেছিলাম যে কোনওরকম ডিফল্ট পাথ একই সংগ্রহস্থলের দিকে নির্দেশ করতে পারে । এই. ধন্যবাদ, আপনি - আমি সমস্যা থেকে মুক্তি পেতে লুপগুলি পেরিয়েছিলাম এবং pathসেটিংটি ছিল অপরাধী।
ওউজে

1

এটি যদি কেবল ম্যাপযুক্ত ড্রাইভে ঘটে তবে এটি বাগ https://bitbucket.org/tortoisehg/thg/issue/889/cant-commit-file-over-network-share হতে পারে । ড্রাইভ চিঠির পরিবর্তে ইউএনসি পাথ ব্যবহার করা সমস্যার বিষয়টি অবিচ্ছেদ্য বলে মনে হচ্ছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.