Closed chahalamit009 closed 3 years ago
Seeing this too on Mac, though able to successfully run via Docker.
Same here. CentOS stream just hangs:
comply build templates/index.ace -> output/index.html
None of the PDF's are build from the mark up files.
It does work in Docker though.
NVM - This was due to missing texlive-xetex and pandoc for me.
Same issue, it works in docker but not in regular CLI. I tried installing pandoc and texlive-xetex but no luck. On MacOS Catalina
I was able to get comply running locally on macOS and in github actions recently. I am interested in helping figure out the additional documentation or code changes needed to enable this to run more smoothly.
I think #98 is one of the PRs that needs to be merged. Additionally, I think comply needs to be able to find the pandoc
and pdflatex
commands. On macOS I was able to install these using
brew install pandoc
and brew install --cask basictex
Hi all, I have a very similar issue, except comply build
seems to hang somewhere after processing a number of files. In the hope that the following is helpful, this is what I've done.
OS: macOS big Sur 11.3.1 (build 20E241) Comply version 1.5.2 Shell: zsh
# First install the tools we need:
$ brew update
$ brew install pandoc librsvg
$ brew install homebrew/cask/basictex
# (I have also tried this with uninstalling basictex and then installing the full mactex instead; same result)
$ brew tap strongdm/comply
$ comply -v
comply version 1.5.2
# the following two commands ensure zsh has an up-to-date PATH
$ eval "$(/usr/libexec/path_helper)"
$ rehash
# confirm that we can find pandoc and tex:
$ which pandoc
/usr/local/bin/pandoc
$ which pdflatex
/Library/TeX/texbin/pdflatex
# Create a new set of templates
$ mkdir mysoc
$ cd mysoc
$ comply init
# (I edited comply.yml to add my gitlab details)
$ comply build
At this point, it starts producing outputs (I do get the index.html
and a number of PDF files), although TeX gets confused at the start:
templates/index.ace -> output/index.html
Error producing PDF.
! Undefined control sequence.
<argument> @{} >{\raggedright \arraybackslash
}p{(\columnwidth - 2\tabcolsep...
l.79 ...umnwidth - 2\tabcolsep) * \real{0.86}}@{}}
Error producing PDF.
! Undefined control sequence.
<argument> @{} >{\raggedright \arraybackslash
}p{(\columnwidth - 8\tabcolsep...
l.257 ...mnwidth - 8\tabcolsep) * \real{0.21}}@{}}
Error producing PDF.
! Undefined control sequence.
<argument> @{} >{\raggedright \arraybackslash
}p{(\columnwidth - 6\tabcolsep...
l.162 ...mnwidth - 6\tabcolsep) * \real{0.22}}@{}}
Error producing PDF.
! Undefined control sequence.
<argument> @{} >{\raggedright \arraybackslash
}p{(\columnwidth - 6\tabcolsep...
l.200 ...mnwidth - 6\tabcolsep) * \real{0.30}}@{}}
Error producing PDF.
! Undefined control sequence.
<argument> @{} >{\raggedright \arraybackslash
}p{(\columnwidth - 8\tabcolsep...
l.280 ...mnwidth - 8\tabcolsep) * \real{0.20}}@{}}
Error producing PDF.
! Undefined control sequence.
<argument> @{} >{\raggedright \arraybackslash
}p{(\columnwidth - 8\tabcolsep...
l.340 ...mnwidth - 8\tabcolsep) * \real{0.20}}@{}}
Error producing PDF.
! Undefined control sequence.
<argument> @{} >{\raggedright \arraybackslash
}p{(\columnwidth - 4\tabcolsep...
l.211 ...mnwidth - 4\tabcolsep) * \real{0.64}}@{}}
policies/change.md -> output/MYSOC-SCP.pdf
policies/log.md -> output/MYSOC-LMP.pdf
policies/conduct.md -> output/MYSOC-COCP.pdf
narratives/system.md -> output/MYSOC-SAN.pdf
policies/processing.md -> output/MYSOC-PIP.pdf
policies/vendor.md -> output/MYSOC-VMP.pdf
policies/datacenter.md -> output/MYSOC-DP.pdf
policies/policy.md -> output/MYSOC-PTP.pdf
policies/cyber.md -> output/MYSOC-CRP.pdf
policies/workstation.md -> output/MYSOC-WP.pdf
policies/incident.md -> output/MYSOC-SIRP.pdf
narratives/products.md -> output/MYSOC-PSN.pdf
policies/password.md -> output/MYSOC-PWP.pdf
policies/access.md -> output/MYSOC-AOTP.pdf
policies/office.md -> output/MYSOC-OSP.pdf
policies/continuity.md -> output/MYSOC-BCP.pdf
narratives/organizational.md -> output/MYSOC-ON.pdf
policies/remote.md -> output/MYSOC-REAP.pdf
policies/application.md -> output/MYSOC-ASP.pdf
policies/development.md -> output/MYSOC-SDLCP.pdf
policies/media.md -> output/MYSOC-MCP.pdf
narratives/control.md -> output/MYSOC-CEN.pdf
policies/confidentiality.md -> output/MYSOC-CP.pdf
policies/information.md -> output/MYSOC-ISP.pdf
narratives/security.md -> output/MYSOC-SEN.pdf
At this point, nothing happens. The process doesn't return. ps
and top
don't show any other relevant processes other than comply build
, and it's been more than 20 minutes (which would be very long for a network timeout or something).
Is there anything I could do to see what comply
is stuck on? Is there a way to get more verbose output?
Same here. I've run comply like 5 times and it always gets stuck and never produces these:
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 5/20/2021 3:28 PM 7302 POC-AP.pdf.md
-a---- 5/20/2021 3:28 PM 14670 POC-DCP.pdf.md
-a---- 5/20/2021 3:28 PM 10602 POC-DRP.pdf.md
-a---- 5/20/2021 3:28 PM 5667 POC-EP.pdf.md
-a---- 5/20/2021 3:28 PM 554 POC-PMP.pdf.md
-a---- 5/20/2021 3:28 PM 10775 POC-RIAP.pdf.md
-a---- 5/20/2021 3:28 PM 7091 POC-RP.pdf.md
The rest of the files are normally converted to PDF, as expected. Edit: Windows & MiKTeX
I'm having the same kind of issue and don't mean to pile on. I'm running
It appears to have issues with 7 files and outputs files like CHSH-AP.pdf.md
orCHSH-DCP.pdf.md
however the utility continues to run until it hangs after it creates the CHSH-SEN.pdf
No more status messages are displayed no other files are created it just hangs. It seems like the files that get written with the .pdf.md
extension all have fancy tables embedded at the end. To validate that I removed the fancy tables and was rewarded with a successfully created file.
It appears that when you start comply it copies all the markdown files over into the output directory and then with the extension *pdf.md
. If it's able to successfully convert the file into a PDF then the .pdf.md
file will be gone and will be replaced with the the *.pdf
file. this has got to be what causes the "Error producing PDF" errors. And the files not converted definitely correspond with the number of "Error producing PDF" messages.
But I don't know if that's what causes comply to appear to hang. I do know the name of the last file displayed is successfully getting created.
I'm happy to help troubleshoot this issue but would need some advice/guidance.
Thanks
Hi all, I have a very similar issue, except
comply build
seems to hang somewhere after processing a number of files. In the hope that the following is helpful, this is what I've done.OS: macOS big Sur 11.3.1 (build 20E241) Comply version 1.5.2 Shell: zsh
# First install the tools we need: $ brew update $ brew install pandoc librsvg $ brew install homebrew/cask/basictex # (I have also tried this with uninstalling basictex and then installing the full mactex instead; same result) $ brew tap strongdm/comply $ comply -v comply version 1.5.2 # the following two commands ensure zsh has an up-to-date PATH $ eval "$(/usr/libexec/path_helper)" $ rehash # confirm that we can find pandoc and tex: $ which pandoc /usr/local/bin/pandoc $ which pdflatex /Library/TeX/texbin/pdflatex # Create a new set of templates $ mkdir mysoc $ cd mysoc $ comply init # (I edited comply.yml to add my gitlab details) $ comply build
At this point, it starts producing outputs (I do get the
index.html
and a number of PDF files), although TeX gets confused at the start:templates/index.ace -> output/index.html Error producing PDF. ! Undefined control sequence. <argument> @{} >{\raggedright \arraybackslash }p{(\columnwidth - 2\tabcolsep... l.79 ...umnwidth - 2\tabcolsep) * \real{0.86}}@{}} Error producing PDF. ! Undefined control sequence. <argument> @{} >{\raggedright \arraybackslash }p{(\columnwidth - 8\tabcolsep... l.257 ...mnwidth - 8\tabcolsep) * \real{0.21}}@{}} Error producing PDF. ! Undefined control sequence. <argument> @{} >{\raggedright \arraybackslash }p{(\columnwidth - 6\tabcolsep... l.162 ...mnwidth - 6\tabcolsep) * \real{0.22}}@{}} Error producing PDF. ! Undefined control sequence. <argument> @{} >{\raggedright \arraybackslash }p{(\columnwidth - 6\tabcolsep... l.200 ...mnwidth - 6\tabcolsep) * \real{0.30}}@{}} Error producing PDF. ! Undefined control sequence. <argument> @{} >{\raggedright \arraybackslash }p{(\columnwidth - 8\tabcolsep... l.280 ...mnwidth - 8\tabcolsep) * \real{0.20}}@{}} Error producing PDF. ! Undefined control sequence. <argument> @{} >{\raggedright \arraybackslash }p{(\columnwidth - 8\tabcolsep... l.340 ...mnwidth - 8\tabcolsep) * \real{0.20}}@{}} Error producing PDF. ! Undefined control sequence. <argument> @{} >{\raggedright \arraybackslash }p{(\columnwidth - 4\tabcolsep... l.211 ...mnwidth - 4\tabcolsep) * \real{0.64}}@{}} policies/change.md -> output/MYSOC-SCP.pdf policies/log.md -> output/MYSOC-LMP.pdf policies/conduct.md -> output/MYSOC-COCP.pdf narratives/system.md -> output/MYSOC-SAN.pdf policies/processing.md -> output/MYSOC-PIP.pdf policies/vendor.md -> output/MYSOC-VMP.pdf policies/datacenter.md -> output/MYSOC-DP.pdf policies/policy.md -> output/MYSOC-PTP.pdf policies/cyber.md -> output/MYSOC-CRP.pdf policies/workstation.md -> output/MYSOC-WP.pdf policies/incident.md -> output/MYSOC-SIRP.pdf narratives/products.md -> output/MYSOC-PSN.pdf policies/password.md -> output/MYSOC-PWP.pdf policies/access.md -> output/MYSOC-AOTP.pdf policies/office.md -> output/MYSOC-OSP.pdf policies/continuity.md -> output/MYSOC-BCP.pdf narratives/organizational.md -> output/MYSOC-ON.pdf policies/remote.md -> output/MYSOC-REAP.pdf policies/application.md -> output/MYSOC-ASP.pdf policies/development.md -> output/MYSOC-SDLCP.pdf policies/media.md -> output/MYSOC-MCP.pdf narratives/control.md -> output/MYSOC-CEN.pdf policies/confidentiality.md -> output/MYSOC-CP.pdf policies/information.md -> output/MYSOC-ISP.pdf narratives/security.md -> output/MYSOC-SEN.pdf
At this point, nothing happens. The process doesn't return.
ps
andtop
don't show any other relevant processes other thancomply build
, and it's been more than 20 minutes (which would be very long for a network timeout or something).Is there anything I could do to see what
comply
is stuck on? Is there a way to get more verbose output?
I'm working on tracking down the hang. If you send SIGQUIT to a go program, it will dump stack traces including for each of the outstanding goroutines. After I get comply to hang, here is what I am seeing from ctrl-\
^\SIGQUIT: quit
PC=0x7fff20585cde m=0 sigcode=0
goroutine 0 [idle]:
runtime.pthread_cond_wait(0x1b8b278, 0x1b8b238, 0x7fff00000000)
/usr/local/Cellar/go/1.16.3/libexec/src/runtime/sys_darwin.go:384 +0x39
runtime.semasleep(0xffffffffffffffff, 0xb2950144)
/usr/local/Cellar/go/1.16.3/libexec/src/runtime/os_darwin.go:63 +0x8d
runtime.notesleep(0x1b8b030)
/usr/local/Cellar/go/1.16.3/libexec/src/runtime/lock_sema.go:181 +0xdb
runtime.mPark()
/usr/local/Cellar/go/1.16.3/libexec/src/runtime/proc.go:1340 +0x39
runtime.stopm()
/usr/local/Cellar/go/1.16.3/libexec/src/runtime/proc.go:2257 +0x92
runtime.findrunnable(0xc000053800, 0x0)
/usr/local/Cellar/go/1.16.3/libexec/src/runtime/proc.go:2916 +0x72e
runtime.schedule()
/usr/local/Cellar/go/1.16.3/libexec/src/runtime/proc.go:3125 +0x2d7
runtime.goexit0(0xc0004b9b00)
/usr/local/Cellar/go/1.16.3/libexec/src/runtime/proc.go:3434 +0x1de
runtime.mcall(0x106ba76)
/usr/local/Cellar/go/1.16.3/libexec/src/runtime/asm_amd64.s:327 +0x5b
goroutine 1 [select]:
github.com/strongdm/comply/internal/render.Build(0x175b1eb, 0x6, 0xc00035ed00, 0xc00023b8f0, 0x15afdc9)
/Users/emurphy/go/src/github.com/strongdm/comply/internal/render/site.go:121 +0x299
github.com/strongdm/comply/internal/cli.buildAction(0xc0001426e0, 0x3, 0xc0002c9220)
/Users/emurphy/go/src/github.com/strongdm/comply/internal/cli/build.go:18 +0x3f
github.com/urfave/cli.HandleAction(0x1630400, 0x1788528, 0xc0001426e0, 0xc0001426e0, 0x0)
/Users/emurphy/go/pkg/mod/github.com/urfave/cli@v1.22.4/app.go:526 +0x105
github.com/urfave/cli.Command.Run(0x1759d12, 0x5, 0x1758a02, 0x1, 0x0, 0x0, 0x0, 0x177c09f, 0x3c, 0x0, ...)
/Users/emurphy/go/pkg/mod/github.com/urfave/cli@v1.22.4/command.go:174 +0x579
github.com/urfave/cli.(*App).Run(0xc000338380, 0xc000020040, 0x2, 0x2, 0x0, 0x0)
/Users/emurphy/go/pkg/mod/github.com/urfave/cli@v1.22.4/app.go:279 +0x808
github.com/strongdm/comply/internal/cli.Main()
/Users/emurphy/go/src/github.com/strongdm/comply/internal/cli/app.go:36 +0x4f
main.main()
/Users/emurphy/go/src/github.com/strongdm/comply/comply.go:6 +0x25
goroutine 26 [select]:
net/http.(*persistConn).writeLoop(0xc00040a7e0)
/usr/local/Cellar/go/1.16.3/libexec/src/net/http/transport.go:2382 +0xf7
created by net/http.(*Transport).dialConn
/usr/local/Cellar/go/1.16.3/libexec/src/net/http/transport.go:1744 +0xc9c
goroutine 25 [IO wait]:
internal/poll.runtime_pollWait(0x3c55da0, 0x72, 0xffffffffffffffff)
/usr/local/Cellar/go/1.16.3/libexec/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00041a318, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
/usr/local/Cellar/go/1.16.3/libexec/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/Cellar/go/1.16.3/libexec/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc00041a300, 0xc000468000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/Cellar/go/1.16.3/libexec/src/internal/poll/fd_unix.go:166 +0x1d5
net.(*netFD).Read(0xc00041a300, 0xc000468000, 0x1000, 0x1000, 0x103a2bc, 0xc000081c38, 0x1065c60)
/usr/local/Cellar/go/1.16.3/libexec/src/net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc000406098, 0xc000468000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/Cellar/go/1.16.3/libexec/src/net/net.go:183 +0x91
net/http.(*persistConn).Read(0xc00040a7e0, 0xc000468000, 0x1000, 0x1000, 0xc000424660, 0xc000081d40, 0x1006d15)
/usr/local/Cellar/go/1.16.3/libexec/src/net/http/transport.go:1922 +0x77
bufio.(*Reader).fill(0xc00042aae0)
/usr/local/Cellar/go/1.16.3/libexec/src/bufio/bufio.go:101 +0x108
bufio.(*Reader).Peek(0xc00042aae0, 0x1, 0x0, 0x1, 0x4, 0x1, 0x3)
/usr/local/Cellar/go/1.16.3/libexec/src/bufio/bufio.go:139 +0x4f
net/http.(*persistConn).readLoop(0xc00040a7e0)
/usr/local/Cellar/go/1.16.3/libexec/src/net/http/transport.go:2083 +0x1a8
created by net/http.(*Transport).dialConn
/usr/local/Cellar/go/1.16.3/libexec/src/net/http/transport.go:1743 +0xc77
goroutine 8 [IO wait]:
internal/poll.runtime_pollWait(0x3c55ae8, 0x72, 0xffffffffffffffff)
/usr/local/Cellar/go/1.16.3/libexec/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc00038a118, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
/usr/local/Cellar/go/1.16.3/libexec/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
/usr/local/Cellar/go/1.16.3/libexec/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc00038a100, 0xc000371000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/Cellar/go/1.16.3/libexec/src/internal/poll/fd_unix.go:166 +0x1d5
net.(*netFD).Read(0xc00038a100, 0xc000371000, 0x1000, 0x1000, 0x103a2bc, 0xc000485c38, 0x1065c60)
/usr/local/Cellar/go/1.16.3/libexec/src/net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc000010420, 0xc000371000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/Cellar/go/1.16.3/libexec/src/net/net.go:183 +0x91
net/http.(*persistConn).Read(0xc000122d80, 0xc000371000, 0x1000, 0x1000, 0xc000424360, 0xc000485d40, 0x1006d15)
/usr/local/Cellar/go/1.16.3/libexec/src/net/http/transport.go:1922 +0x77
bufio.(*Reader).fill(0xc000273500)
/usr/local/Cellar/go/1.16.3/libexec/src/bufio/bufio.go:101 +0x108
bufio.(*Reader).Peek(0xc000273500, 0x1, 0x0, 0x1, 0x4, 0x1, 0x3)
/usr/local/Cellar/go/1.16.3/libexec/src/bufio/bufio.go:139 +0x4f
net/http.(*persistConn).readLoop(0xc000122d80)
/usr/local/Cellar/go/1.16.3/libexec/src/net/http/transport.go:2083 +0x1a8
created by net/http.(*Transport).dialConn
/usr/local/Cellar/go/1.16.3/libexec/src/net/http/transport.go:1743 +0xc77
goroutine 9 [select]:
net/http.(*persistConn).writeLoop(0xc000122d80)
/usr/local/Cellar/go/1.16.3/libexec/src/net/http/transport.go:2382 +0xf7
created by net/http.(*Transport).dialConn
/usr/local/Cellar/go/1.16.3/libexec/src/net/http/transport.go:1744 +0xc9c
goroutine 16 [semacquire]:
sync.runtime_Semacquire(0xc00046c008)
/usr/local/Cellar/go/1.16.3/libexec/src/runtime/sema.go:56 +0x45
sync.(*WaitGroup).Wait(0xc00046c000)
/usr/local/Cellar/go/1.16.3/libexec/src/sync/waitgroup.go:130 +0x65
github.com/strongdm/comply/internal/render.pdf(0x175b1eb, 0x6, 0x0, 0xc000424cc0, 0xc000498a80)
/Users/emurphy/go/src/github.com/strongdm/comply/internal/render/pdf.go:41 +0x165
created by github.com/strongdm/comply/internal/render.Build
/Users/emurphy/go/src/github.com/strongdm/comply/internal/render/site.go:107 +0x191
goroutine 67 [semacquire]:
sync.runtime_Semacquire(0xc000498a88)
/usr/local/Cellar/go/1.16.3/libexec/src/runtime/sema.go:56 +0x45
sync.(*WaitGroup).Wait(0xc000498a80)
/usr/local/Cellar/go/1.16.3/libexec/src/sync/waitgroup.go:130 +0x65
github.com/strongdm/comply/internal/render.Build.func2(0xc000498a80, 0xc000424d20)
/Users/emurphy/go/src/github.com/strongdm/comply/internal/render/site.go:116 +0x73
created by github.com/strongdm/comply/internal/render.Build
/Users/emurphy/go/src/github.com/strongdm/comply/internal/render/site.go:114 +0x226
goroutine 70 [chan send]:
github.com/strongdm/comply/internal/render.pandoc(0xc000193bc0, 0x10, 0xc0000a8060)
/Users/emurphy/go/src/github.com/strongdm/comply/internal/render/pandoc.go:23 +0xbb
github.com/strongdm/comply/internal/render.renderToFilesystem.func1(0xc00046c000, 0xc0006a80c0, 0xc0000a8060, 0xc00060e990)
/Users/emurphy/go/src/github.com/strongdm/comply/internal/render/document.go:42 +0x267
created by github.com/strongdm/comply/internal/render.renderToFilesystem
/Users/emurphy/go/src/github.com/strongdm/comply/internal/render/document.go:30 +0xf3
goroutine 72 [chan send]:
github.com/strongdm/comply/internal/render.pandoc(0xc000241170, 0x11, 0xc0000a8060)
/Users/emurphy/go/src/github.com/strongdm/comply/internal/render/pandoc.go:23 +0xbb
github.com/strongdm/comply/internal/render.renderToFilesystem.func1(0xc00046c000, 0xc0006a80c0, 0xc0000a8060, 0xc00060eea0)
/Users/emurphy/go/src/github.com/strongdm/comply/internal/render/document.go:42 +0x267
created by github.com/strongdm/comply/internal/render.renderToFilesystem
/Users/emurphy/go/src/github.com/strongdm/comply/internal/render/document.go:30 +0xf3
goroutine 79 [chan send]:
github.com/strongdm/comply/internal/render.pandoc(0xc000241590, 0x11, 0xc0000a8060)
/Users/emurphy/go/src/github.com/strongdm/comply/internal/render/pandoc.go:23 +0xbb
github.com/strongdm/comply/internal/render.renderToFilesystem.func1(0xc00046c000, 0xc0006a80c0, 0xc0000a8060, 0xc00060fc20)
/Users/emurphy/go/src/github.com/strongdm/comply/internal/render/document.go:42 +0x267
created by github.com/strongdm/comply/internal/render.renderToFilesystem
/Users/emurphy/go/src/github.com/strongdm/comply/internal/render/document.go:30 +0xf3
goroutine 80 [chan send]:
github.com/strongdm/comply/internal/render.pandoc(0xc0004335b0, 0x10, 0xc0000a8060)
/Users/emurphy/go/src/github.com/strongdm/comply/internal/render/pandoc.go:23 +0xbb
github.com/strongdm/comply/internal/render.renderToFilesystem.func1(0xc00046c000, 0xc0006a80c0, 0xc0000a8060, 0xc00060fdd0)
/Users/emurphy/go/src/github.com/strongdm/comply/internal/render/document.go:42 +0x267
created by github.com/strongdm/comply/internal/render.renderToFilesystem
/Users/emurphy/go/src/github.com/strongdm/comply/internal/render/document.go:30 +0xf3
goroutine 88 [chan send]:
github.com/strongdm/comply/internal/render.pandoc(0xc000241ba8, 0x11, 0xc0000a8060)
/Users/emurphy/go/src/github.com/strongdm/comply/internal/render/pandoc.go:23 +0xbb
github.com/strongdm/comply/internal/render.renderToFilesystem.func1(0xc00046c000, 0xc0006a80c0, 0xc0000a8060, 0xc000401830)
/Users/emurphy/go/src/github.com/strongdm/comply/internal/render/document.go:42 +0x267
created by github.com/strongdm/comply/internal/render.renderToFilesystem
/Users/emurphy/go/src/github.com/strongdm/comply/internal/render/document.go:30 +0xf3
goroutine 91 [chan send]:
github.com/strongdm/comply/internal/render.pandoc(0xc00023cfe0, 0x10, 0xc0000a8060)
/Users/emurphy/go/src/github.com/strongdm/comply/internal/render/pandoc.go:23 +0xbb
github.com/strongdm/comply/internal/render.renderToFilesystem.func1(0xc00046c000, 0xc0006a80c0, 0xc0000a8060, 0xc000132090)
/Users/emurphy/go/src/github.com/strongdm/comply/internal/render/document.go:42 +0x267
created by github.com/strongdm/comply/internal/render.renderToFilesystem
/Users/emurphy/go/src/github.com/strongdm/comply/internal/render/document.go:30 +0xf3
goroutine 92 [chan send]:
github.com/strongdm/comply/internal/render.pandoc(0xc000241db8, 0x12, 0xc0000a8060)
/Users/emurphy/go/src/github.com/strongdm/comply/internal/render/pandoc.go:23 +0xbb
github.com/strongdm/comply/internal/render.renderToFilesystem.func1(0xc00046c000, 0xc0006a80c0, 0xc0000a8060, 0xc000132480)
/Users/emurphy/go/src/github.com/strongdm/comply/internal/render/document.go:42 +0x267
created by github.com/strongdm/comply/internal/render.renderToFilesystem
/Users/emurphy/go/src/github.com/strongdm/comply/internal/render/document.go:30 +0xf3
rax 0x104
rbx 0x5378e00
rcx 0x7ffeefbfe068
rdx 0x2b00
rdi 0x1b8b278
rsi 0x440100004500
rbp 0x7ffeefbfe110
rsp 0x7ffeefbfe068
r8 0x0
r9 0xa0
r10 0x0
r11 0x246
r12 0x1b8b238
r13 0x16
r14 0x440100004500
r15 0x2b00
rip 0x7fff20585cde
rflags 0x247
cs 0x7
fs 0x0
gs 0x0
I have a fix for the problem where comply hangs if there is any error code returned from the pandoc command, the fix is in #104. That will stop the hang, and then the user can debug the pandoc error without waiting a very long time for CI jobs to time out.
I believe the fix for the underlying pandoc errors that several folks in this thread have run into is in #98, and adding those two packages to the latex template fixes those particular pandoc errors. Of course there may be other pandoc errors that would also trigger the hang.
I agree that the error handling can be improved. In my case, the problem got fixed just pulling the strongdm/pandoc
docker image:
$ docker pull strongdm/pandoc
$ cd my-company
$ go run ../comply.go build
templates/index.ace -> output/index.html
policies/password.md -> output/my-company-PWP.pdf
policies/continuity.md -> output/my-company-BCP.pdf
policies/workstation.md -> output/my-company-WP.pdf
policies/risk.md -> output/my-company-RIAP.pdf
policies/datacenter.md -> output/my-company-DP.pdf
policies/privacy.md -> output/my-company-PMP.pdf
policies/cyber.md -> output/my-company-CRP.pdf
policies/processing.md -> output/my-company-PIP.pdf
policies/office.md -> output/my-company-OSP.pdf
policies/availability.md -> output/my-company-AP.pdf
policies/access.md -> output/my-company-AOTP.pdf
narratives/system.md -> output/my-company-SAN.pdf
policies/confidentiality.md -> output/my-company-CP.pdf
policies/application.md -> output/my-company-ASP.pdf
policies/encryption.md -> output/my-company-EP.pdf
narratives/security.md -> output/my-company-SEN.pdf
policies/policy.md -> output/my-company-PTP.pdf
narratives/organizational.md -> output/my-company-ON.pdf
policies/media.md -> output/my-company-MCP.pdf
policies/change.md -> output/my-company-SCP.pdf
narratives/products.md -> output/my-company-PSN.pdf
policies/vendor.md -> output/my-company-VMP.pdf
policies/incident.md -> output/my-company-SIRP.pdf
policies/log.md -> output/my-company-LMP.pdf
policies/remote.md -> output/my-company-REAP.pdf
narratives/control.md -> output/my-company-CEN.pdf
policies/conduct.md -> output/my-company-COCP.pdf
policies/retention.md -> output/my-company-RP.pdf
policies/disaster.md -> output/my-company-DRP.pdf
policies/classification.md -> output/my-company-DCP.pdf
policies/information.md -> output/my-company-ISP.pdf
policies/development.md -> output/my-company-SDLCP.pdf
Comply build commands keeps on running forever in github actions using go setup all other commands run smoothly
templates/index.ace -> output/index.html
nothing prints after this When run on local Docker it executes everything fine