Repository navigation
Blog build freezing after update #34
Description
As reported by @atiq-cs in #25 (comment):
Hi Guys, It's been a while. Hope you are doing great!
Change in this commit 8c248f0 as part of this PR has regressed build performance. As a result of that, our large blog with 819 posts has started failing since pulling in this change. Our blog successfully builds till commit 8c248f0 is pulled.
To provide more context, our blog usually builds in 6 minutes. Since pulling this change / commit 8c248f0 it has been building for forever. It's also failing on the cloud instance since pulling in this change due to time outs. I request re-reviewing the change introduced and what changed that increased build time dramatically!
Please let me know if you need any other debug / diagnostic info.
Here's output of
-- preview,dotnet run -- preview [INFO] Statiq Framework version 1.0.0-beta.70+625bd4754bf14f3c6a860587c6d747f4850b1c13 [INFO] Statiq Web version 1.0.0+7f3b58623a7e4ad2542635168bf49d12bb09c299 [INFO] Root path: D:/Code/statiq/triage.rdeago [INFO] Input path(s): theme/input input [INFO] Output path: output [INFO] Temp path: temp [INFO] Cache path: cache [INFO] ========== Execution ========== [INFO] Executing 11 pipelines (AnalyzeContent, Archives, Assets, Content, Data, DirectoryMetadata, Feeds, Inputs, Redirects, SearchIndex, Sitemap) [INFO] Absolute Execution Date/Time: 2023-08-06 14:32:52 [INFO] Configured Current Date/Time: 2023-08-06 14:32:52 [INFO] Minimum Configured Log Level: Information [INFO] Cleaned temp directory D:/Code/statiq/triage.rdeago/temp [INFO] Restored write tracking data from D:/Code/statiq/triage.rdeago/cache/writecache.json [INFO] Restored Razor compilation cache from D:/Code/statiq/triage.rdeago/cache/razorcache.json with 825 assemblies [INFO] -> Inputs/Input » Starting Inputs Input phase execution... (0 input document(s), 1 module(s)) [INFO] -> DirectoryMetadata/Input » Starting DirectoryMetadata Input phase execution... (0 input document(s), 1 module(s)) [INFO] <- DirectoryMetadata/Input » Finished DirectoryMetadata Input phase execution (0 output document(s), 217 ms) [INFO] -> DirectoryMetadata/Process » Starting DirectoryMetadata Process phase execution... (0 input document(s), 1 module(s)) [INFO] <- DirectoryMetadata/Process » Finished DirectoryMetadata Process phase execution (0 output document(s), 1 ms) [INFO] <- Inputs/Input » Finished Inputs Input phase execution (837 output document(s), 423 ms) [INFO] -> Inputs/Process » Starting Inputs Process phase execution... (837 input document(s), 8 module(s)) [INFO] <- Inputs/Process » Finished Inputs Process phase execution (836 output document(s), 6106 ms) [INFO] -> Data/Process » Starting Data Process phase execution... (0 input document(s), 5 module(s)) [INFO] -> Assets/Process » Starting Assets Process phase execution... (0 input document(s), 3 module(s)) [INFO] <- Data/Process » Finished Data Process phase execution (0 output document(s), 29 ms) [INFO] -> Content/Process » Starting Content Process phase execution... (0 input document(s), 4 module(s)) [INFO] <- Content/Process » Finished Content Process phase execution (809 output document(s), 2407 ms) [INFO] -> Archives/Process » Starting Archives Process phase execution... (0 input document(s), 3 module(s)) [INFO] <- Assets/Process » Finished Assets Process phase execution (23 output document(s), 3453 ms) [INFO] <- Archives/Process » Finished Archives Process phase execution (880 output document(s), 87658 ms) [INFO] -> Feeds/Process » Starting Feeds Process phase execution... (0 input document(s), 3 module(s)) [INFO] <- Feeds/Process » Finished Feeds Process phase execution (2 output document(s), 32270 ms) [INFO] -> SearchIndex/PostProcess » Starting SearchIndex PostProcess phase execution... (0 input document(s), 1 module(s)) [INFO] <- SearchIndex/PostProcess » Finished SearchIndex PostProcess phase execution (0 output document(s), 0 ms) [INFO] -> SearchIndex/Output » Starting SearchIndex Output phase execution... (0 input document(s), 1 module(s)) [INFO] <- SearchIndex/Output » Finished SearchIndex Output phase execution (0 output document(s), 3 ms) [INFO] -> Sitemap/PostProcess » Starting Sitemap PostProcess phase execution... (0 input document(s), 1 module(s)) [INFO] -> Assets/Output » Starting Assets Output phase execution... (23 input document(s), 2 module(s)) [INFO] -> Data/Output » Starting Data Output phase execution... (0 input document(s), 2 module(s)) [INFO] <- Data/Output » Finished Data Output phase execution (0 output document(s), 0 ms) [INFO] -> Content/PostProcess » Starting Content PostProcess phase execution... (809 input document(s), 1 module(s)) [INFO] <- Assets/Output » Finished Assets Output phase execution (23 output document(s), 36 ms) [INFO] -> Archives/PostProcess » Starting Archives PostProcess phase execution... (880 input document(s), 1 module(s)) [INFO] -> Feeds/Output » Starting Feeds Output phase execution... (2 input document(s), 2 module(s)) [INFO] <- Feeds/Output » Finished Feeds Output phase execution (2 output document(s), 4 ms) [INFO] <- Sitemap/PostProcess » Finished Sitemap PostProcess phase execution (1 output document(s), 99 ms) [INFO] -> Sitemap/Output » Starting Sitemap Output phase execution... (1 input document(s), 1 module(s)) [INFO] <- Sitemap/Output » Finished Sitemap Output phase execution (1 output document(s), 7 ms) [INFO] [Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager] User profile is available. Using 'C:\Users\Atiq\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest.
Activity
rdeago commentedon Aug 8, 2023
@atiq-cs what puzzles me about this issue is that your
--previewoutput shows all pipelines completing successfully in a few minutes. The freeze seems to happen at a later stage.Can you post the output of
--previewbefore commit [82c48f0] so we can see what should follow that log entry byXmlKeyManager?atiq-cs commentedon Aug 8, 2023
Here you go,
Revert to previous commit,
$ git reset --hard 1d761fe87 HEAD is now at 1d761fe Add support for ImageAttribution metadatabuild again,
atiq-cs commentedon Sep 9, 2023
@rdeago @daveaglick did you get a chance to look into this?
@rdeago lmk if you need anything else. Thanks for looking into this.
Have you assessed if a fix is needed yet?
atiq-cs commentedon Sep 23, 2023
@rdeago is there any update? Do you have any question?
daveaglick commentedon Sep 25, 2023
Let's go ahead and take a little look at this from a root-cause analysis before merging #35 (though thanks for PRing that if we can't get to the bottom of it). The part that I find interesting is that
IsPageis a fairly simple computed value:Given the changes you're backing out in #35 that fix the performance, I can see a couple of possibilities for the degradation...
IsPageis taking a while to compute.PageSourcesis just a string (PageSources: pages/**/*), but theFilterSourcesmethod uses the globber, which maybe is taking a while on a large site._page-after-content.cshtmlfile? I'm guessing not, but worth checking. If so, then that may be what's taking the time.Any chance your site code is somewhere I can get to it and run some profiling?
atiq-cs commentedon Sep 26, 2023
Emailed you, please check junk / spam folder.
daveaglick commentedon Sep 26, 2023
Thanks, got it! Taking a look at this today, hopefully I'll at least get an idea where the performance degradation is coming from, if not a fix.
daveaglick commentedon Sep 26, 2023
I think I have a solution - can you try updating to the latest version of Statiq without the changes in #35 (I.e. leave the
ispagestuff in the theme). I'm curious if that resolves the issue, and if it feels snappier in general. If so, I'll fill in the details on what changed.atiq-cs commentedon Sep 26, 2023
My local build succeeded with above suggestion. Also succeeded in cloud instance.
atiq-cs commentedon Feb 12, 2024
Feel free to close this issue @daveaglick :)
daveaglick commentedon Feb 14, 2024
Awesome! I actually don't remember what changed at this point 😂 but glad it's holding strong.