Hi Paul -- I think I covered this in the other answers I just posted but no, that was me pulling the trigger manually. We don't currently have an automatically triggered test setup but we are in a position to add one now that we aren't killing the build server every time. Test behavior is a different question . . .
On Mon, Dec 15, 2014 at 11:42 AM, Wyatt Barnett <[email protected]> wrote: > > I was actually typing up a pretty lengthly progress report --- hang tight. > > On Mon, Dec 15, 2014 at 11:37 AM, Prescott Nasser < > [email protected]> wrote: >> >> Wyatt - do these run every morning? >> >> Also, hows the set up going? Are we having any issues with TC vs running >> tests locally or are they in parity now? >> >> Thanks for your work setting this up! >> ________________________________ >> From: [email protected]<mailto:[email protected]> >> Sent: 12/15/2014 8:08 AM >> >> To: [email protected]<mailto:[email protected]> >> Subject: [TeamCity, FAILED] Build Lucene.NET :: Lucene.NET Core #45 >> >> Build Lucene.NET :: Lucene.NET Core #45 failed (Tests failed: 1178 (53 >> new), passed: 1476, ignored: 119). >> Agent: JetBrains-dotnet-agent01 >> Build results: >> http://teamcity.codebetter.com/viewLog.html?buildId=175821&buildTypeId=LuceneNet_Core >> >> Failed Tests Summary: >> Newly failed tests (53 tests, alphabetically ordered) >> ================================================================== >> Lucene.Net.Tests.dll: Lucene.Net.Analysis.TestMockAnalyzer.TestWrapReader >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Compressing.TestCompressingStoredFieldsFormat.BaseIndexFileFormatTestCase.TestMergeStability >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Compressing.TestCompressingStoredFieldsFormat.BaseStoredFieldsFormatTestCase.TestReadSkip >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Compressing.TestCompressingTermVectorsFormat.TestNoOrds >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene3x.TestLucene3xPostingsFormat.BasePostingsFormatTestCase.TestDocsAndFreqs >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene3x.TestLucene3xPostingsFormat.BasePostingsFormatTestCase.TestDocsAndFreqsAndPositions >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene3x.TestLucene3xPostingsFormat.BasePostingsFormatTestCase.TestDocsAndFreqsAndPositionsAndOffsetsAndPayloads >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene40.TestLucene40DocValuesFormat.BaseDocValuesFormatTestCase.TestSortedSetFixedLengthSingleValuedVsStoredFields >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene40.TestLucene40DocValuesFormat.BaseDocValuesFormatTestCase.TestSortedSetVariableLengthSingleValuedVsStoredFields >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene41.TestBlockPostingsFormat.BasePostingsFormatTestCase.TestDocsAndFreqsAndPositionsAndOffsets >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene41.TestBlockPostingsFormat2.TestDFBlockSize >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene41.TestBlockPostingsFormat2.TestDFBlockSizeMultiple >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene41.TestBlockPostingsFormat2.TestTTFBlockSize >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene42.TestLucene42DocValuesFormat.BaseDocValuesFormatTestCase.TestLongNumericsVsStoredFields >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene42.TestLucene42DocValuesFormat.BaseDocValuesFormatTestCase.TestTwoDocumentsMerged >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene45.TestLucene45DocValuesFormat.BaseDocValuesFormatTestCase.TestSortedSetTwoDocumentsLastMissingMerge >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Perfield.TestPerFieldDocValuesFormat.BaseDocValuesFormatTestCase.TestSortedBytesTwoDocumentsMerged >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Perfield.TestPerFieldDocValuesFormat.BaseDocValuesFormatTestCase.TestSortedSetFixedLengthVsStoredFields >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Perfield.TestPerFieldDocValuesFormat.BaseDocValuesFormatTestCase.TestTwoDocumentsMerged >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Perfield.TestPerFieldDocValuesFormat.BaseIndexFileFormatTestCase.TestMergeStability >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Perfield.TestPerFieldPostingsFormat.BasePostingsFormatTestCase.TestDocsAndFreqsAndPositionsAndOffsetsAndPayloads >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Perfield.TestPerFieldPostingsFormat.BasePostingsFormatTestCase.TestDocsAndFreqsAndPositionsAndPayloads >> Lucene.Net.Tests.dll: Lucene.Net.Index.TestCheckIndex.TestDeletedDocs >> Lucene.Net.Tests.dll: >> Lucene.Net.Index.TestConsistentFieldNumbers.TestSameFieldNumbersAcrossSegments >> Lucene.Net.Tests.dll: >> Lucene.Net.Index.TestDeletionPolicy.TestKeepAllDeletionPolicy >> Lucene.Net.Tests.dll: Lucene.Net.Index.TestDocTermOrds.TestRandom >> Lucene.Net.Tests.dll: >> Lucene.Net.Index.TestDocValuesFormat.BaseDocValuesFormatTestCase.TestSortedSetTwoDocumentsLastMissingMerge >> Lucene.Net.Tests.dll: >> Lucene.Net.Index.TestIndexWriter.TestWhetherDeleteAllDeletesWriteLock >> Lucene.Net.Tests.dll: >> Lucene.Net.Index.TestIndexWriterCommit.TestCommitOnCloseDiskUsage >> Lucene.Net.Tests.dll: >> Lucene.Net.Index.TestIndexWriterExceptions.TestDocumentsWriterExceptions >> Lucene.Net.Tests.dll: >> Lucene.Net.Index.TestIndexWriterExceptions.TestExceptionDuringRollback >> Lucene.Net.Tests.dll: >> Lucene.Net.Index.TestIndexWriterExceptions.TestLegalbutVeryLargePositions >> Lucene.Net.Tests.dll: >> Lucene.Net.Index.TestIndexWriterExceptions.TestRandomExceptions >> Lucene.Net.Tests.dll: >> Lucene.Net.Index.TestIndexWriterMergePolicy.TestForceFlush >> Lucene.Net.Tests.dll: >> Lucene.Net.Index.TestIndexWriterReader.TestAfterCommit >> Lucene.Net.Tests.dll: Lucene.Net.Index.TestMultiDocValues.TestBinary >> Lucene.Net.Tests.dll: Lucene.Net.Index.TestMultiDocValues.TestNumerics >> Lucene.Net.Tests.dll: >> Lucene.Net.Index.TestNumericDocValuesUpdates.TestSegmentMerges >> Lucene.Net.Tests.dll: Lucene.Net.Index.TestOmitNorms.TestMixedRAM >> Lucene.Net.Tests.dll: >> Lucene.Net.Index.TestParallelAtomicReader.TestCloseInnerReader >> Lucene.Net.Tests.dll: >> Lucene.Net.Index.TestPostingsFormat.BasePostingsFormatTestCase.TestDocsAndFreqsAndPositionsAndOffsets >> Lucene.Net.Tests.dll: Lucene.Net.Index.TestSegmentMerger.Test >> Lucene.Net.Tests.dll: Lucene.Net.Index.TestTermsEnum2.TestSeeking >> Lucene.Net.Tests.dll: Lucene.Net.Search.TestLiveFieldValues.Test >> Lucene.Net.Tests.dll: >> Lucene.Net.Search.TestMinShouldMatch2.TestAdvanceAllTerms >> Lucene.Net.Tests.dll: >> Lucene.Net.Search.TestMinShouldMatch2.TestAdvanceCMR2 >> Lucene.Net.Tests.dll: >> Lucene.Net.Search.TestMinShouldMatch2.TestAdvanceVaryingNumberOfTerms >> Lucene.Net.Tests.dll: >> Lucene.Net.Search.TestMinShouldMatch2.TestNextAllTerms >> Lucene.Net.Tests.dll: Lucene.Net.Search.TestMinShouldMatch2.TestNextCMR2 >> Lucene.Net.Tests.dll: >> Lucene.Net.Search.TestMinShouldMatch2.TestNextVaryingNumberOfTerms >> Lucene.Net.Tests.dll: Lucene.Net.Util.TestFixedBitSet.TestSmall >> Lucene.Net.Tests.dll: >> Lucene.Net.Util.TestOpenBitSet.BaseDocIdSetTestCase`1.TestAgainstBitSet >> Lucene.Net.Tests.dll: Lucene.Net.Util.TestPagedBytes.TestDataInputOutput2 >> >> Other failed tests (1125 tests, alphabetically ordered, only first 100 >> shown) >> ================================================================== >> Lucene.Net.Tests.dll: >> Lucene.Net.Analysis.TestGraphTokenizers.TestDoubleMockGraphTokenFilterRandom >> Lucene.Net.Tests.dll: >> Lucene.Net.Analysis.TestGraphTokenizers.TestMockGraphTokenFilterAfterHoles >> Lucene.Net.Tests.dll: >> Lucene.Net.Analysis.TestGraphTokenizers.TestMockGraphTokenFilterAfterHolesRandom >> Lucene.Net.Tests.dll: >> Lucene.Net.Analysis.TestGraphTokenizers.TestMockGraphTokenFilterBeforeHolesRandom >> Lucene.Net.Tests.dll: >> Lucene.Net.Analysis.TestGraphTokenizers.TestMockGraphTokenFilterRandom >> Lucene.Net.Tests.dll: >> Lucene.Net.Analysis.TestLookaheadTokenFilter.TestNeverCallingPeek >> Lucene.Net.Tests.dll: >> Lucene.Net.Analysis.TestLookaheadTokenFilter.TestRandomStrings >> Lucene.Net.Tests.dll: >> Lucene.Net.Analysis.TestMockAnalyzer.TestRandomRegexps >> Lucene.Net.Tests.dll: >> Lucene.Net.Analysis.TestMockAnalyzer.TestRandomStrings >> Lucene.Net.Tests.dll: Lucene.Net.Analysis.TestMockAnalyzer.TestSingleChar >> Lucene.Net.Tests.dll: Lucene.Net.Analysis.TestMockAnalyzer.TestThreeChars >> Lucene.Net.Tests.dll: Lucene.Net.Analysis.TestMockAnalyzer.TestTwoChars >> Lucene.Net.Tests.dll: Lucene.Net.Analysis.TestMockAnalyzer.TestUppercase >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Compressing.TestCompressingStoredFieldsFormat.BaseStoredFieldsFormatTestCase.TestBigDocuments >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Compressing.TestCompressingStoredFieldsFormat.BaseStoredFieldsFormatTestCase.TestStoredFieldsOrder >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Compressing.TestCompressingStoredFieldsFormat.BaseStoredFieldsFormatTestCase.TestWriteReadMerge >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Compressing.TestCompressingTermVectorsFormat.BaseTermVectorsFormatTestCase.TestClone >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Compressing.TestCompressingTermVectorsFormat.BaseTermVectorsFormatTestCase.TestHighFreqs >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Compressing.TestCompressingTermVectorsFormat.BaseTermVectorsFormatTestCase.TestLotsOfFields >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Compressing.TestCompressingTermVectorsFormat.BaseTermVectorsFormatTestCase.TestMerge >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Compressing.TestCompressingTermVectorsFormat.BaseTermVectorsFormatTestCase.TestMixedOptions >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Compressing.TestCompressingTermVectorsFormat.BaseTermVectorsFormatTestCase.TestRareVectors >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Compressing.TestFastCompressionMode.AbstractTestCompressionMode.TestConstant >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Compressing.TestFastCompressionMode.AbstractTestLZ4CompressionMode.TestLongLiterals >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Compressing.TestFastCompressionMode.AbstractTestLZ4CompressionMode.TestLongMatchs >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Compressing.TestFastDecompressionMode.AbstractTestCompressionMode.TestConstant >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Compressing.TestFastDecompressionMode.AbstractTestLZ4CompressionMode.TestLongLiterals >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Compressing.TestFastDecompressionMode.AbstractTestLZ4CompressionMode.TestLongMatchs >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Compressing.TestHighCompressionMode.AbstractTestCompressionMode.TestDecompress >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Compressing.TestHighCompressionMode.AbstractTestCompressionMode.TestLUCENE5201 >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Compressing.TestHighCompressionMode.AbstractTestCompressionMode.TestPartialDecompress >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene3x.TestLucene3xPostingsFormat.BasePostingsFormatTestCase.TestRandom >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene3x.TestLucene3xStoredFieldsFormat.BaseStoredFieldsFormatTestCase.TestBigDocuments >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene3x.TestLucene3xTermVectorsFormat.BaseTermVectorsFormatTestCase.TestClone >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene3x.TestLucene3xTermVectorsFormat.BaseTermVectorsFormatTestCase.TestHighFreqs >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene3x.TestLucene3xTermVectorsFormat.BaseTermVectorsFormatTestCase.TestLotsOfFields >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene3x.TestLucene3xTermVectorsFormat.BaseTermVectorsFormatTestCase.TestMerge >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene3x.TestLucene3xTermVectorsFormat.BaseTermVectorsFormatTestCase.TestMixedOptions >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene3x.TestLucene3xTermVectorsFormat.BaseTermVectorsFormatTestCase.TestRandom >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene3x.TestLucene3xTermVectorsFormat.BaseTermVectorsFormatTestCase.TestRareVectors >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene3x.TestTermInfosReaderIndex.TestSeekEnum >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene40.TestLucene40DocValuesFormat.BaseDocValuesFormatTestCase.TestByteMissingVsFieldCache >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene40.TestLucene40DocValuesFormat.BaseDocValuesFormatTestCase.TestBytesTwoDocumentsMerged >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene40.TestLucene40DocValuesFormat.BaseDocValuesFormatTestCase.TestIntMissingVsFieldCache >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene40.TestLucene40DocValuesFormat.BaseDocValuesFormatTestCase.TestLongMissingVsFieldCache >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene40.TestLucene40DocValuesFormat.BaseDocValuesFormatTestCase.TestMissingSortedBytes >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Lucene40.TestLucene40DocValuesFormat.BaseDocValuesFormatTestCase.TestRandomSortedBytes >> >> >> >> Newly failed tests details (only first 3 failures shown here) >> ================================================================== >> Lucene.Net.Tests.dll: Lucene.Net.Analysis.TestMockAnalyzer.TestWrapReader >> (new) ================= >> Test(s) failed. TokenStream has more tokens than expected (expected >> count=1); extra token= >> at NUnit.Framework.Assert.Fail(String message, Object[] args) >> at NUnit.Framework.Assert.Fail(String message) >> at >> Lucene.Net.Analysis.BaseTokenStreamTestCase.AssertTokenStreamContents(TokenStream >> ts, String[] output, Int32[] startOffsets, Int32[] endOffsets, String[] >> types, Int32[] posIncrements, Int32[] posLengths, Nullable`1 finalOffset, >> Nullable`1 finalPosInc, Boolean[] keywordAtts, Boolean offsetsAreCorrect) >> in >> z:\Builds\work\bcdbe6b8cc677a49\src\Lucene.Net.TestFramework\Analysis\BaseTokenStreamTestCase.cs:line >> 305 >> at >> Lucene.Net.Analysis.BaseTokenStreamTestCase.AssertAnalyzesTo(Analyzer a, >> String input, String[] output, Int32[] startOffsets, Int32[] endOffsets, >> String[] types, Int32[] posIncrements, Int32[] posLengths) in >> z:\Builds\work\bcdbe6b8cc677a49\src\Lucene.Net.TestFramework\Analysis\BaseTokenStreamTestCase.cs:line >> 426 >> at Lucene.Net.Analysis.TestMockAnalyzer.TestWrapReader() in >> z:\Builds\work\bcdbe6b8cc677a49\src\Lucene.Net.Tests\core\Analysis\TestMockAnalyzer.cs:line >> 310 >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Compressing.TestCompressingStoredFieldsFormat.BaseIndexFileFormatTestCase.TestMergeStability >> (new) ================= >> Test(s) failed. System.Exception : CheckIndex failed >> at Lucene.Net.Util.TestUtil.CheckIndex(Directory dir, Boolean >> crossCheckTermVectors) in >> z:\Builds\work\bcdbe6b8cc677a49\src\Lucene.Net.TestFramework\Util\TestUtil.cs:line >> 257 >> at Lucene.Net.Store.MockDirectoryWrapper.Dispose() in >> z:\Builds\work\bcdbe6b8cc677a49\src\Lucene.Net.TestFramework\Store\MockDirectoryWrapper.cs:line >> 935 >> at Lucene.Net.Index.BaseIndexFileFormatTestCase.TestMergeStability() >> in >> z:\Builds\work\bcdbe6b8cc677a49\src\Lucene.Net.TestFramework\Index\BaseIndexFileFormatTestCase.cs:line >> 127 >> ------- Stderr: ------- >> CheckIndex failed >> ERROR: could not read any segments file in directory >> at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) >> at >> System.IO.MemoryMappedFiles.MemoryMappedFile.CreateCore(SafeFileHandle >> fileHandle, String mapName, HandleInheritability inheritability, >> MemoryMappedFileSecurity memoryMappedFileSecurity, MemoryMappedFileAccess >> access, MemoryMappedFileOptions options, Int64 capacity) >> at >> System.IO.MemoryMappedFiles.MemoryMappedFile.CreateFromFile(FileStream >> fileStream, String mapName, Int64 capacity, MemoryMappedFileAccess access, >> MemoryMappedFileSecurity memoryMappedFileSecurity, HandleInheritability >> inheritability, Boolean leaveOpen) >> at Lucene.Net.Store.MMapDirectory.Map(MMapIndexInput input, FileStream >> fc, Int64 offset, Int64 length) in >> z:\Builds\work\bcdbe6b8cc677a49\src\Lucene.Net.Core\Store\MMapDirectory.cs:line >> 355 >> at Lucene.Net.Store.MMapDirectory.MMapIndexInput..ctor(MMapDirectory >> outerInstance, String resourceDescription, FileStream fc) in >> z:\Builds\work\bcdbe6b8cc677a49\src\Lucene.Net.Core\Store\MMapDirectory.cs:line >> 263 >> at Lucene.Net.Store.MMapDirectory.OpenInput(String name, IOContext >> context) in >> z:\Builds\work\bcdbe6b8cc677a49\src\Lucene.Net.Core\Store\MMapDirectory.cs:line >> 205 >> at Lucene.Net.Store.MockDirectoryWrapper.OpenInput(String name, >> IOContext context) in >> z:\Builds\work\bcdbe6b8cc677a49\src\Lucene.Net.TestFramework\Store\MockDirectoryWrapper.cs:line >> 781 >> at Lucene.Net.Store.FilterDirectory.OpenChecksumInput(String name, >> IOContext context) in >> z:\Builds\work\bcdbe6b8cc677a49\src\Lucene.Net.Core\Store\FilterDirectory.cs:line >> 132 >> at Lucene.Net.Index.SegmentInfos.FindSegmentsFile.Run(IndexCommit >> commit) in >> z:\Builds\work\bcdbe6b8cc677a49\src\Lucene.Net.Core\Index\SegmentInfos.cs:line >> 920 >> at Lucene.Net.Index.SegmentInfos.FindSegmentsFile.Run() in >> z:\Builds\work\bcdbe6b8cc677a49\src\Lucene.Net.Core\Index\SegmentInfos.cs:line >> 845 >> at Lucene.Net.Index.SegmentInfos.Read(Directory directory) in >> z:\Builds\work\bcdbe6b8cc677a49\src\Lucene.Net.Core\Index\SegmentInfos.cs:line >> 471 >> at Lucene.Net.Index.CheckIndex.DoCheckIndex(IList`1 onlySegments) in >> z:\Builds\work\bcdbe6b8cc677a49\src\Lucene.Net.Core\Index\CheckIndex.cs:line >> 490 >> Lucene.Net.Tests.dll: >> Lucene.Net.Codecs.Compressing.TestCompressingStoredFieldsFormat.BaseStoredFieldsFormatTestCase.TestReadSkip >> (new) ================= >> Test(s) failed. Expected: <[6e 6f 65 72 64 61 70 6f 6a 63 67 73 63 62 >> 65 7a 65 61 68 77 65 68 62 78 63 74 66 63 66 6c 63 73 6d 70]> >> But was: null >> >> at NUnit.Framework.Assert.That(Object actual, IResolveConstraint >> expression, String message, Object[] args) >> at NUnit.Framework.Assert.AreEqual(Object expected, Object actual) >> at Lucene.Net.Index.BaseStoredFieldsFormatTestCase.TestReadSkip() in >> z:\Builds\work\bcdbe6b8cc677a49\src\Lucene.Net.TestFramework\Index\BaseStoredFieldsFormatTestCase.cs:line >> 405 >> see all newly failed tests: >> http://teamcity.codebetter.com/viewLog.html?buildId=175821&buildTypeId=LuceneNet_Core >> >> >> ============================================================================ >> Configure email notifications: >> http://teamcity.codebetter.com/profile.html?init=1&tab=userNotifications >> >
