Repository corrupted (non-cloneable, non-browseable) after double-push
Finally pushed that 300MB repo
Now I get the following Yellow Screen of Death:
Server Error in '/' Application.
query did not return a unique result: 2
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: NHibernate.NonUniqueResultException: query did not return a unique result: 2
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[NonUniqueResultException: query did not return a unique result: 2]
NHibernate.Impl.AbstractQueryImpl.UniqueElement(IList list) +161
NHibernate.Impl.CriteriaImpl.UniqueResult() +70
HgLab.Core.ObjectModel.PushlogEntryItem.GetPushlogEntryItem(Repository repository, HgNodeID hgNodeID) in c:\Projects\hglab\src\HgLab.Core\ObjectModel\PushlogEntryItem.cs:24
HgLab.Areas.Project.Controllers.RepositoryController.Files(Repository repository, String changeset, String path) in c:\Projects\hglab\src\HgLab\Areas\Project\Controllers\RepositoryController.cs:84
lambda_method(Closure , ControllerBase , Object[] ) +236
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +248
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +39
System.Web.Mvc.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() +120
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +637
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +307
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +688
System.Web.Mvc.Controller.ExecuteCore() +162
System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +305
HgLab.Core.Framework.Web.HgLabControllerBase.Execute(RequestContext requestContext) in c:\Projects\hglab\src\HgLab.Core\Framework\Web\HgLabControllerBase.cs:69
System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +62
System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +15
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +606
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +288
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.17929
Keyboard shortcuts
Generic
? | Show this help |
---|---|
ESC | Blurs the current field |
Comment Form
r | Focus the comment reply box |
---|---|
^ + ↩ | Submit the comment |
You can use Command ⌘
instead of Control ^
on Mac
1 Posted by oleksandr on 28 Aug, 2013 11:06 PM
UPDATE: workaround - removed offending rows from tables PushLogEntry and PushLogEntryItem.
It seems you check for commits at the start of push, but not at the end, so I was able to push duplicate commits and so it complained.
2 Posted by oleksandr on 28 Aug, 2013 11:08 PM
UPDATE: THE REPO IS CORRUPTED NOW!
3 Posted by oleksandr on 28 Aug, 2013 11:14 PM
hg verify says:
4 Posted by oleksandr on 28 Aug, 2013 11:21 PM
tried to update from the corrupted repo, receive this error:
(details edited, but there are definitely some encoding problems)Support Staff 5 Posted by Anton Gogolev on 29 Aug, 2013 10:11 AM
Oleksand,
Yes, removing duplicate PushlogEntryItems does the trick. This bug is already fixed in an upcoming version.
As for repository corruption, this is very unfortunate. I think this is somehow related to the fact that HgLab was unable to accept the
push
the first time and there were some leftovers not cleaned up properly. Will try to resolve this ASAP.