xyproto / algernon

Small self-contained pure-Go web server with Lua, Teal, Markdown, Ollama, HTTP/2, QUIC, Redis, SQLite and PostgreSQL support ++
https://algernon.roboticoverlords.org
BSD 3-Clause "New" or "Revised" License
2.81k stars 138 forks source link

The vegeta benchmark triggers a crash in the code that handles Lua scripts #25

Closed SDpower closed 5 years ago

SDpower commented 5 years ago

I try to use https://github.com/tsenart/vegeta do benchmark... it will really easy crash just 500 clients.

echo "GET http://127.0.0.1:3000/counter/" | vegeta attack -rate=500 -duration=30s | tee results.bin | vegeta report

The logs:

-> % ./welcome.sh
Try editing the markdown file in samples/welcome and see the
results instantly in the browser at http://localhost:3000/

    Algernon 1.12.2
    QUIC Web Server

-------------------------------------------------
-> serverconf.lua
Server directory:   samples/welcome
Server address:     :3000
Database:       Bolt (/tmp/algernon.db)
Options:        [Debug, Auto-refresh, Dev, Server]
Cache mode:     Off
Event server:       :5553
Request limit:      Off
Server configuration:   [serverconf.lua]
Large file threshold:   44040192 bytes
Large file timeout: 10 sec
-------------------------------------------------
INFO[0006] Serving HTTP on http://localhost:3000/
fatal error: concurrent map read and map write

goroutine 420 [running]:
runtime.throw(0x1027327, 0x21)
    /usr/local/go/src/runtime/panic.go:608 +0x72 fp=0xc010e98108 sp=0xc010e980d8 pc=0x42d582
runtime.mapaccess2_faststr(0xea7580, 0xc00a2c29f0, 0xc01106eaa0, 0x8, 0x1c1f260, 0xc0100f2720)
    /usr/local/go/src/runtime/map_faststr.go:110 +0x458 fp=0xc010e98178 sp=0xc010e98108 pc=0x414148
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LTable).RawGetString(...)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/table.go:309
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).getFieldString(0xc01097c5a0, 0x12251c0, 0xc00e1bbaa0, 0xc01106eaa0, 0x8, 0x0, 0xc0108ec1c0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:919 +0x4fd fp=0xc010e98230 sp=0xc010e98178 pc=0x784bed
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.init.3.func7(0xc01097c5a0, 0x18000000, 0xc00fe3a000, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:303 +0xa5 fp=0xc010e98288 sp=0xc010e98230 pc=0x79d515
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.mainLoop(0xc01097c5a0, 0xc00fe3a000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:31 +0xda fp=0xc010e982b8 sp=0xc010e98288 pc=0x798e4a
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).callR(0xc01097c5a0, 0x0, 0xffffffffffffffff, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:876 +0x247 fp=0xc010e983a8 sp=0xc010e982b8 pc=0x7841c7
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).Call(0xc01097c5a0, 0x0, 0xffffffffffffffff)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1613 +0x48 fp=0xc010e983d8 sp=0xc010e983a8 pc=0x78a4b8
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).PCall(0xc01097c5a0, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1676 +0xda fp=0xc010e98428 sp=0xc010e983d8 pc=0x78a5aa
github.com/xyproto/algernon/engine.(*Config).LuaFunctionMap.func1.1(0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/lua.go:303 +0x299 fp=0xc010e985b8 sp=0xc010e98428 pc=0xdd03f9
runtime.call64(0xc00a54cbd0, 0xc0121f81e0, 0xc0108ec980, 0x1800000038)
    /usr/local/go/src/runtime/asm_amd64.s:523 +0x3b fp=0xc010e98608 sp=0xc010e985b8 pc=0x45ba7b
reflect.Value.call(0xe996c0, 0xc0121f81e0, 0x13, 0xfcbef4, 0x4, 0x1c1f5f8, 0x1, 0x0, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454 fp=0xc010e988d0 sp=0xc010e98608 pc=0x4c3ac4
reflect.Value.Call(0xe996c0, 0xc0121f81e0, 0x13, 0x1c1f5f8, 0x0, 0x0, 0x98, 0x7f4e1d25eb00, 0x124e640)
    /usr/local/go/src/reflect/value.go:308 +0xa4 fp=0xc010e98938 sp=0xc010e988d0 pc=0x4c3554
text/template.call(0xea2f60, 0xc00a695340, 0x94, 0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /usr/local/go/src/text/template/funcs.go:278 +0x3c0 fp=0xc010e98ab8 sp=0xc010e98938 pc=0x9543e0
runtime.call128(0xc00a54cb40, 0x1093fe8, 0xc0100f2660, 0x3000000058)
    /usr/local/go/src/runtime/asm_amd64.s:524 +0x52 fp=0xc010e98b48 sp=0xc010e98ab8 pc=0x45bb12
reflect.Value.call(0xeba5c0, 0x1093fe8, 0x13, 0xfcbef4, 0x4, 0xc0110fcde0, 0x2, 0x1, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454 fp=0xc010e98e10 sp=0xc010e98b48 pc=0x4c3ac4
reflect.Value.Call(0xeba5c0, 0x1093fe8, 0x13, 0xc0110fcde0, 0x1, 0x1, 0x1225d40, 0xc010bf75c0, 0xfc6000)
    /usr/local/go/src/reflect/value.go:308 +0xa4 fp=0xc010e98e78 sp=0xc010e98e10 pc=0x4c3554
text/template.(*state).evalCall(0xc010e994c8, 0xec0b40, 0xc0113e4000, 0x15, 0xeba5c0, 0x1093fe8, 0x13, 0x1225cc0, 0xc010bf7560, 0xc0103421eb, ...)
    /usr/local/go/src/text/template/exec.go:695 +0x6bd fp=0xc010e99070 sp=0xc010e98e78 pc=0x94e53d
text/template.(*state).evalFunction(0xc010e994c8, 0xec0b40, 0xc0113e4000, 0x15, 0xc010bf7590, 0x1225cc0, 0xc010bf7560, 0xc0110fcba0, 0x2, 0x2, ...)
    /usr/local/go/src/text/template/exec.go:563 +0x172 fp=0xc010e99168 sp=0xc010e99070 pc=0x94ce82
text/template.(*state).evalCommand(0xc010e994c8, 0xec0b40, 0xc0113e4000, 0x15, 0xc010bf7560, 0xec12c0, 0x1c1f5f8, 0x99, 0xc010e99318, 0x951ca7, ...)
    /usr/local/go/src/text/template/exec.go:460 +0x5e9 fp=0xc010e99238 sp=0xc010e99168 pc=0x94bbe9
text/template.(*state).evalPipeline(0xc010e994c8, 0xec0b40, 0xc0113e4000, 0x15, 0xc0100f25a0, 0x0, 0x0, 0x98)
    /usr/local/go/src/text/template/exec.go:429 +0x126 fp=0xc010e99328 sp=0xc010e99238 pc=0x94b0d6
text/template.(*state).walk(0xc010e994c8, 0xec0b40, 0xc0113e4000, 0x15, 0x1225bc0, 0xc010bf75f0)
    /usr/local/go/src/text/template/exec.go:254 +0x49b fp=0xc010e993b8 sp=0xc010e99328 pc=0x949a2b
text/template.(*state).walk(0xc010e994c8, 0xec0b40, 0xc0113e4000, 0x15, 0x1225e00, 0xc010bf7350)
    /usr/local/go/src/text/template/exec.go:262 +0x142 fp=0xc010e99448 sp=0xc010e993b8 pc=0x9496d2
text/template.(*Template).execute(0xc0108ec6c0, 0x1213640, 0xc0111e6a10, 0xec0b40, 0xc0113e4000, 0x0, 0x0)
    /usr/local/go/src/text/template/exec.go:217 +0x215 fp=0xc010e99520 sp=0xc010e99448 pc=0x9490a5
text/template.(*Template).Execute(0xc0108ec6c0, 0x1213640, 0xc0111e6a10, 0xec0b40, 0xc0113e4000, 0xc011133b00, 0xc011133b10)
    /usr/local/go/src/text/template/exec.go:200 +0x53 fp=0xc010e99568 sp=0xc010e99520 pc=0x948e63
html/template.(*Template).Execute(0xc010bf7020, 0x1213640, 0xc0111e6a10, 0xec0b40, 0xc0113e4000, 0xc012310001, 0x0)
    /usr/local/go/src/html/template/template.go:122 +0x8c fp=0xc010e995b0 sp=0xc010e99568 pc=0x96845c
github.com/xyproto/algernon/engine.(*Config).AmberPage(0xc00057c000, 0x1221140, 0xc011dc6020, 0xc011dce100, 0xc0120e2570, 0x23, 0xc01231e370, 0xb0, 0xb0, 0xc0113e4000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/rendering.go:635 +0x467 fp=0xc010e99798 sp=0xc010e995b0 pc=0xdbdf17
github.com/xyproto/algernon/engine.(*Config).FilePage(0xc00057c000, 0x1221140, 0xc011dc6020, 0xc011dce100, 0xc0120e2570, 0x23, 0xfdae88, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:223 +0x14c6 fp=0xc010e99b08 sp=0xc010e99798 pc=0xdafb56
github.com/xyproto/algernon/engine.(*Config).DirPage(0xc00057c000, 0x1221140, 0xc011dc6020, 0xc011dce100, 0x7ffe0ceb862e, 0xf, 0xc0120d0060, 0x18, 0xfd69eb, 0x7)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/dirhandler.go:139 +0x2b8 fp=0xc010e99be8 sp=0xc010e99b08 pc=0xda8208
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc0120da000, 0xc011dce100)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:484 +0x49e fp=0xc010e99ce0 sp=0xc010e99be8 pc=0xdcf96e
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc0120da000, 0xc011dce100)
    /usr/local/go/src/net/http/server.go:1964 +0x44 fp=0xc010e99d08 sp=0xc010e99ce0 pc=0x69c744
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc0120da000, 0xc011dce100)
    /usr/local/go/src/net/http/server.go:2361 +0x127 fp=0xc010e99d48 sp=0xc010e99d08 pc=0x69e3f7
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc0120da000, 0xc011dce100)
    /usr/local/go/src/net/http/server.go:2741 +0xab fp=0xc010e99d78 sp=0xc010e99d48 pc=0x69f3ab
net/http.(*conn).serve(0xc011d980a0, 0x12230c0, 0xc011db8240)
    /usr/local/go/src/net/http/server.go:1847 +0x646 fp=0xc010e99fc8 sp=0xc010e99d78 pc=0x69b7a6
runtime.goexit()
    /usr/local/go/src/runtime/asm_amd64.s:1333 +0x1 fp=0xc010e99fd0 sp=0xc010e99fc8 pc=0x45d711
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 1 [chan send]:
github.com/xyproto/algernon/engine.(*Config).Serve(0xc00057c000, 0xc00a2c2510, 0xc00021f980, 0xc00021f920, 0xfcde4e, 0x5)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/serve.go:274 +0x29f
github.com/xyproto/algernon/engine.(*Config).MustServe(0xc00057c000, 0xc00a2c2510, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/config.go:840 +0x7bf
main.main()
    /home/ubuntu/go/src/github.com/xyproto/algernon/main.go:34 +0xcd

goroutine 5 [syscall]:
os/signal.signal_recv(0x0)
    /usr/local/go/src/runtime/sigqueue.go:139 +0x9c
os/signal.loop()
    /usr/local/go/src/os/signal/signal_unix.go:23 +0x22
created by os/signal.init.0
    /usr/local/go/src/os/signal/signal_unix.go:29 +0x41

goroutine 10 [syscall]:
syscall.Syscall6(0xe8, 0x7, 0xc00a3a9cf4, 0x7, 0xffffffffffffffff, 0x0, 0x0, 0x6320726176202020, 0x745f203d2065646f, 0x646f635f2e736968)
    /usr/local/go/src/syscall/asm_linux_amd64.s:44 +0x5
github.com/xyproto/algernon/vendor/golang.org/x/sys/unix.EpollWait(0x7, 0xc00a3a9cf4, 0x7, 0x7, 0xffffffffffffffff, 0x42c7d3, 0xc00a3a9cf0, 0x6946656372756f73)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go:1689 +0x72
github.com/xyproto/algernon/vendor/github.com/fsnotify/fsnotify.(*fdPoller).wait(0xc0089a0900, 0x1092600, 0xc0089a0900, 0x636145726f662e29)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/fsnotify/fsnotify/inotify_poller.go:86 +0x91
github.com/xyproto/algernon/vendor/github.com/fsnotify/fsnotify.(*Watcher).readEvents(0xc00a2bafa0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/fsnotify/fsnotify/inotify.go:192 +0x195
created by github.com/xyproto/algernon/vendor/github.com/fsnotify/fsnotify.NewWatcher
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/fsnotify/fsnotify/inotify.go:59 +0x1a8

goroutine 11 [select]:
github.com/xyproto/algernon/vendor/github.com/xyproto/recwatch.CollectFileChangeEvents.func1(0xc0019f3400, 0xc00a354360, 0xc0001f3198, 0x14dc9380)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/recwatch/eventserver.go:74 +0xe5
created by github.com/xyproto/algernon/vendor/github.com/xyproto/recwatch.CollectFileChangeEvents
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/recwatch/eventserver.go:72 +0x82

goroutine 12 [IO wait]:
internal/poll.runtime_pollWait(0x7f4e1d221e30, 0x72, 0x0)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc008cba018, 0x72, 0xc004c8ab00, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc008cba018, 0xffffffffffffff00, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Accept(0xc008cba000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:384 +0x1a0
net.(*netFD).accept(0xc008cba000, 0xc000508380, 0x30, 0x30)
    /usr/local/go/src/net/fd_unix.go:238 +0x42
net.(*TCPListener).accept(0xc0012d6020, 0x50, 0x7f4e1d25d6c0, 0x0)
    /usr/local/go/src/net/tcpsock_posix.go:139 +0x2e
net.(*TCPListener).AcceptTCP(0xc0012d6020, 0x40e348, 0x30, 0xf57200)
    /usr/local/go/src/net/tcpsock.go:247 +0x47
net/http.tcpKeepAliveListener.Accept(0xc0012d6020, 0xf57200, 0xc00a3741b0, 0xeb3c20, 0x1bdf160)
    /usr/local/go/src/net/http/server.go:3232 +0x2f
net/http.(*Server).Serve(0xc00a380000, 0x1222b00, 0xc0012d6020, 0x0, 0x0)
    /usr/local/go/src/net/http/server.go:2826 +0x22f
net/http.(*Server).ListenAndServe(0xc00a380000, 0xc00a380000, 0x3)
    /usr/local/go/src/net/http/server.go:2764 +0xb6
github.com/xyproto/algernon/vendor/github.com/xyproto/recwatch.EventServer.func1(0xfcaf1e, 0x3, 0xc00a342510, 0xc00a354360, 0x14dc9380, 0xfca861, 0x1, 0xfcde4e, 0x5)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/recwatch/eventserver.go:208 +0xfc
created by github.com/xyproto/algernon/vendor/github.com/xyproto/recwatch.EventServer
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/recwatch/eventserver.go:200 +0x182

goroutine 13 [IO wait]:
internal/poll.runtime_pollWait(0x7f4e1d221f00, 0x72, 0x0)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc008ca2118, 0x72, 0xc004c8b300, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc008ca2118, 0xffffffffffffff00, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Accept(0xc008ca2100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:384 +0x1a0
net.(*netFD).accept(0xc008ca2100, 0x1093f10, 0xc00a2c4600, 0xc00a2c45a0)
    /usr/local/go/src/net/fd_unix.go:238 +0x42
net.(*TCPListener).accept(0xc0001f31a0, 0x5c571c6a, 0xc00a367d18, 0x1228d40)
    /usr/local/go/src/net/tcpsock_posix.go:139 +0x2e
net.(*TCPListener).Accept(0xc0001f31a0, 0xc00a367d68, 0x18, 0xc00c391800, 0x69f8e5)
    /usr/local/go/src/net/tcpsock.go:260 +0x47
net/http.(*Server).Serve(0xc00a344f70, 0x1222080, 0xc0001f31a0, 0x0, 0x0)
    /usr/local/go/src/net/http/server.go:2826 +0x22f
github.com/xyproto/algernon/vendor/github.com/tylerb/graceful.(*Server).Serve(0xc00a2c45a0, 0x1222080, 0xc0001f31a0, 0x1222080, 0xc0001f31a0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/tylerb/graceful/graceful.go:309 +0x2ef
github.com/xyproto/algernon/vendor/github.com/tylerb/graceful.(*Server).ListenAndServe(0xc00a2c45a0, 0xc00a2c2510, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/tylerb/graceful/graceful.go:147 +0xa1
github.com/xyproto/algernon/engine.(*Config).Serve.func1(0xc00021fa40, 0xc00057c000, 0xc00a354369, 0xc00a2c2510)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/serve.go:141 +0x1d4
created by github.com/xyproto/algernon/engine.(*Config).Serve
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/serve.go:122 +0x102

goroutine 14 [runnable]:
github.com/xyproto/algernon/vendor/github.com/tylerb/graceful.(*Server).manageConnections(0xc00a2c45a0, 0xc00021fb00, 0xc00021fb60, 0xc00021fbc0, 0xc00021fc20, 0xc00021fc80, 0xc00021fce0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/tylerb/graceful/graceful.go:366 +0x2da
created by github.com/xyproto/algernon/vendor/github.com/tylerb/graceful.(*Server).Serve
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/tylerb/graceful/graceful.go:297 +0x220

goroutine 66 [chan receive]:
github.com/xyproto/algernon/vendor/github.com/tylerb/graceful.(*Server).handleInterrupt(0xc00a2c45a0, 0xc00a315bc0, 0xc0000b4180, 0x1222080, 0xc0001f31a0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/tylerb/graceful/graceful.go:422 +0x41
created by github.com/xyproto/algernon/vendor/github.com/tylerb/graceful.(*Server).Serve
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/tylerb/graceful/graceful.go:305 +0x2c1

goroutine 40 [runnable]:
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LTable).RawSetString(...)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/table.go:205
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).setFieldString(0xc00a2c4460, 0x12251c0, 0xc00e1bbaa0, 0xffb848, 0xe, 0x1225100, 0xc010ab6a80)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:983 +0x906
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).SetField(0xc00a2c4460, 0x12251c0, 0xc00e1bbaa0, 0xffb848, 0xe, 0x1225100, 0xc010ab6a80)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1516 +0x67
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).SetGlobal(0xc00a2c4460, 0xffb848, 0xe, 0x1225100, 0xc010ab6a80)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1532 +0x7e
github.com/xyproto/algernon/engine.(*Config).LoadServerConfigFunctions(0xc00057c000, 0xc00a2c4460, 0xc01221e100, 0x20, 0xc00a2c4460, 0xc01221e100)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/serverconf.go:128 +0x506
github.com/xyproto/algernon/engine.(*Config).LoadCommonFunctions(0xc00057c000, 0x1221140, 0xc012268000, 0xc01221c000, 0xc01221e100, 0x20, 0xc00a2c4460, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/lua.go:46 +0x2ef
github.com/xyproto/algernon/engine.(*Config).LuaFunctionMap(0xc00057c000, 0x1221140, 0xc012268000, 0xc01221c000, 0xc01228c000, 0x1b7, 0x3b7, 0xc01221e100, 0x20, 0x0, ...)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/lua.go:236 +0x15f
github.com/xyproto/algernon/engine.(*Config).FilePage(0xc00057c000, 0x1221140, 0xc012268000, 0xc01221c000, 0xc01226a570, 0x23, 0xfdae88, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:196 +0x1555
github.com/xyproto/algernon/engine.(*Config).DirPage(0xc00057c000, 0x1221140, 0xc012268000, 0xc01221c000, 0x7ffe0ceb862e, 0xf, 0xc01221e060, 0x18, 0xfd69eb, 0x7)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/dirhandler.go:139 +0x2b8
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc012258000, 0xc01221c000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:484 +0x49e
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc012258000, 0xc01221c000)
    /usr/local/go/src/net/http/server.go:1964 +0x44
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc012258000, 0xc01221c000)
    /usr/local/go/src/net/http/server.go:2361 +0x127
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc012258000, 0xc01221c000)
    /usr/local/go/src/net/http/server.go:2741 +0xab
net/http.(*conn).serve(0xc00a3c8000, 0x12230c0, 0xc000364440)
    /usr/local/go/src/net/http/server.go:1847 +0x646
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 62 [semacquire]:
sync.runtime_SemacquireMutex(0xc00b4a0cbc, 0x1225100)
    /usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc00b4a0cb8)
    /usr/local/go/src/sync/mutex.go:134 +0xff
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).beginRWTx(0xc00b4a0b40, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:512 +0x5e
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Begin(0xc00b4a0b40, 0xf04301, 0xf1de80, 0x1227600, 0xc00f3300a0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:461 +0x38
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Update(0xc00b4a0b40, 0xc00f32ffa8, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:579 +0x3c
github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt.(*KeyValue).Inc(0xc0117ef6c0, 0xc00fdfb603, 0x7, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt/simplebolt.go:653 +0xab
github.com/xyproto/algernon/lua/datastruct.kvInc(0xc00a2c59a0, 0x2)
    /home/ubuntu/go/src/github.com/xyproto/algernon/lua/datastruct/keyvalue.go:77 +0x8b
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.callGFunction(0xc00a2c59a0, 0x1, 0xc011a82580)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:136 +0x40
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.init.3.func27(0xc00a2c59a0, 0x80000003, 0xc00fe3f000, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:778 +0xf44
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.mainLoop(0xc00a2c59a0, 0xc00fe3f000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:31 +0xda
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).callR(0xc00a2c59a0, 0x0, 0xffffffffffffffff, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:876 +0x247
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).Call(0xc00a2c59a0, 0x0, 0xffffffffffffffff)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1613 +0x48
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).PCall(0xc00a2c59a0, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1676 +0xda
github.com/xyproto/algernon/engine.(*Config).LuaFunctionMap.func1.1(0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/lua.go:303 +0x299
reflect.Value.call(0xe996c0, 0xc011a10000, 0x13, 0xfcbef4, 0x4, 0x1c1f5f8, 0x1, 0x0, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xe996c0, 0xc011a10000, 0x13, 0x1c1f5f8, 0x0, 0x0, 0x98, 0x7f4e1d25d000, 0x124e640)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.call(0xea2f60, 0xc00bbbf220, 0x94, 0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /usr/local/go/src/text/template/funcs.go:278 +0x3c0
reflect.Value.call(0xeba5c0, 0x1093fe8, 0x13, 0xfcbef4, 0x4, 0xc0119a7ca0, 0x2, 0x1, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xeba5c0, 0x1093fe8, 0x13, 0xc0119a7ca0, 0x1, 0x1, 0x1225d40, 0xc0119ade30, 0xfc6000)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.(*state).evalCall(0xc00f3314c8, 0xec0b40, 0xc00fe4fc50, 0x15, 0xeba5c0, 0x1093fe8, 0x13, 0x1225cc0, 0xc0119addd0, 0xc0054a974b, ...)
    /usr/local/go/src/text/template/exec.go:695 +0x6bd
text/template.(*state).evalFunction(0xc00f3314c8, 0xec0b40, 0xc00fe4fc50, 0x15, 0xc0119ade00, 0x1225cc0, 0xc0119addd0, 0xc0119a7b80, 0x2, 0x2, ...)
    /usr/local/go/src/text/template/exec.go:563 +0x172
text/template.(*state).evalCommand(0xc00f3314c8, 0xec0b40, 0xc00fe4fc50, 0x15, 0xc0119addd0, 0xec12c0, 0x1c1f5f8, 0x99, 0xc00f331318, 0x951ca7, ...)
    /usr/local/go/src/text/template/exec.go:460 +0x5e9
text/template.(*state).evalPipeline(0xc00f3314c8, 0xec0b40, 0xc00fe4fc50, 0x15, 0xc00fe89c80, 0x0, 0x0, 0x98)
    /usr/local/go/src/text/template/exec.go:429 +0x126
text/template.(*state).walk(0xc00f3314c8, 0xec0b40, 0xc00fe4fc50, 0x15, 0x1225bc0, 0xc0119ade60)
    /usr/local/go/src/text/template/exec.go:254 +0x49b
text/template.(*state).walk(0xc00f3314c8, 0xec0b40, 0xc00fe4fc50, 0x15, 0x1225e00, 0xc0119adbc0)
    /usr/local/go/src/text/template/exec.go:262 +0x142
text/template.(*Template).execute(0xc01198f9c0, 0x1213640, 0xc0119c3420, 0xec0b40, 0xc00fe4fc50, 0x0, 0x0)
    /usr/local/go/src/text/template/exec.go:217 +0x215
text/template.(*Template).Execute(0xc01198f9c0, 0x1213640, 0xc0119c3420, 0xec0b40, 0xc00fe4fc50, 0xc00fe89200, 0xc00fe89210)
    /usr/local/go/src/text/template/exec.go:200 +0x53
html/template.(*Template).Execute(0xc0119ad890, 0x1213640, 0xc0119c3420, 0xec0b40, 0xc00fe4fc50, 0xc000030001, 0x0)
    /usr/local/go/src/html/template/template.go:122 +0x8c
github.com/xyproto/algernon/engine.(*Config).AmberPage(0xc00057c000, 0x1221140, 0xc000906900, 0xc00fe61800, 0xc00f36d2c0, 0x23, 0xc00003d340, 0xb0, 0xb0, 0xc00fe4fc50)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/rendering.go:635 +0x467
github.com/xyproto/algernon/engine.(*Config).FilePage(0xc00057c000, 0x1221140, 0xc000906900, 0xc00fe61800, 0xc00f36d2c0, 0x23, 0xfdae88, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:223 +0x14c6
github.com/xyproto/algernon/engine.(*Config).DirPage(0xc00057c000, 0x1221140, 0xc000906900, 0xc00fe61800, 0x7ffe0ceb862e, 0xf, 0xc0089a17c0, 0x18, 0xfd69eb, 0x7)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/dirhandler.go:139 +0x2b8
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc0117bc1c0, 0xc00fe61800)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:484 +0x49e
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc0117bc1c0, 0xc00fe61800)
    /usr/local/go/src/net/http/server.go:1964 +0x44
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc0117bc1c0, 0xc00fe61800)
    /usr/local/go/src/net/http/server.go:2361 +0x127
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc0117bc1c0, 0xc00fe61800)
    /usr/local/go/src/net/http/server.go:2741 +0xab
net/http.(*conn).serve(0xc00a4e2e60, 0x12230c0, 0xc00361ab40)
    /usr/local/go/src/net/http/server.go:1847 +0x646
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 25 [runnable]:
net/textproto.MIMEHeader.Set(0xc00a3743f0, 0xfd15ac, 0x6, 0xffec65, 0xf)
    /usr/local/go/src/net/textproto/header.go:22 +0x5d
net/http.Header.Set(0xc00a3743f0, 0xfd15ac, 0x6, 0xffec65, 0xf)
    /usr/local/go/src/net/http/header.go:32 +0x53
github.com/xyproto/algernon/engine.(*Config).ServerHeaders(0xc00057c000, 0x1222300, 0xc00ea1e000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:413 +0x75
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc00ea1e000, 0xc010eaa100)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:476 +0x529
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc00ea1e000, 0xc010eaa100)
    /usr/local/go/src/net/http/server.go:1964 +0x44
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc00ea1e000, 0xc010eaa100)
    /usr/local/go/src/net/http/server.go:2361 +0x127
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc00ea1e000, 0xc010eaa100)
    /usr/local/go/src/net/http/server.go:2741 +0xab
net/http.(*conn).serve(0xc00a444000, 0x12230c0, 0xc0004ca840)
    /usr/local/go/src/net/http/server.go:1847 +0x646
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 16 [semacquire]:
sync.runtime_SemacquireMutex(0xc00b4a0cbc, 0x1225100)
    /usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc00b4a0cb8)
    /usr/local/go/src/sync/mutex.go:134 +0xff
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).beginRWTx(0xc00b4a0b40, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:512 +0x5e
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Begin(0xc00b4a0b40, 0xf04301, 0xf1de80, 0x1227600, 0xc00ee0e0a0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:461 +0x38
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Update(0xc00b4a0b40, 0xc00ee0dfa8, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:579 +0x3c
github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt.(*KeyValue).Inc(0xc011f9e900, 0xc0112adbf3, 0x7, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt/simplebolt.go:653 +0xab
github.com/xyproto/algernon/lua/datastruct.kvInc(0xc011236dc0, 0x2)
    /home/ubuntu/go/src/github.com/xyproto/algernon/lua/datastruct/keyvalue.go:77 +0x8b
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.callGFunction(0xc011236dc0, 0x1, 0xc0115ff4c0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:136 +0x40
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.init.3.func27(0xc011236dc0, 0x80000003, 0xc0115e4000, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:778 +0xf44
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.mainLoop(0xc011236dc0, 0xc0115e4000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:31 +0xda
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).callR(0xc011236dc0, 0x0, 0xffffffffffffffff, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:876 +0x247
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).Call(0xc011236dc0, 0x0, 0xffffffffffffffff)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1613 +0x48
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).PCall(0xc011236dc0, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1676 +0xda
github.com/xyproto/algernon/engine.(*Config).LuaFunctionMap.func1.1(0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/lua.go:303 +0x299
reflect.Value.call(0xe996c0, 0xc011290870, 0x13, 0xfcbef4, 0x4, 0x1c1f5f8, 0x1, 0x0, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xe996c0, 0xc011290870, 0x13, 0x1c1f5f8, 0x0, 0x0, 0x98, 0x7f4e1d25dd80, 0x124e640)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.call(0xea2f60, 0xc0082be4b0, 0x94, 0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /usr/local/go/src/text/template/funcs.go:278 +0x3c0
reflect.Value.call(0xeba5c0, 0x1093fe8, 0x13, 0xfcbef4, 0x4, 0xc01158cee0, 0x2, 0x1, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xeba5c0, 0x1093fe8, 0x13, 0xc01158cee0, 0x1, 0x1, 0x1225d40, 0xc011571e60, 0xfc6000)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.(*state).evalCall(0xc00ee0f4c8, 0xec0b40, 0xc01133fc80, 0x15, 0xeba5c0, 0x1093fe8, 0x13, 0x1225cc0, 0xc011571e00, 0xc00a60cf6b, ...)
    /usr/local/go/src/text/template/exec.go:695 +0x6bd
text/template.(*state).evalFunction(0xc00ee0f4c8, 0xec0b40, 0xc01133fc80, 0x15, 0xc011571e30, 0x1225cc0, 0xc011571e00, 0xc01158cdc0, 0x2, 0x2, ...)
    /usr/local/go/src/text/template/exec.go:563 +0x172
text/template.(*state).evalCommand(0xc00ee0f4c8, 0xec0b40, 0xc01133fc80, 0x15, 0xc011571e00, 0xec12c0, 0x1c1f5f8, 0x99, 0xc00ee0f318, 0x951ca7, ...)
    /usr/local/go/src/text/template/exec.go:460 +0x5e9
text/template.(*state).evalPipeline(0xc00ee0f4c8, 0xec0b40, 0xc01133fc80, 0x15, 0xc01155f980, 0x0, 0x0, 0x98)
    /usr/local/go/src/text/template/exec.go:429 +0x126
text/template.(*state).walk(0xc00ee0f4c8, 0xec0b40, 0xc01133fc80, 0x15, 0x1225bc0, 0xc011571e90)
    /usr/local/go/src/text/template/exec.go:254 +0x49b
text/template.(*state).walk(0xc00ee0f4c8, 0xec0b40, 0xc01133fc80, 0x15, 0x1225e00, 0xc011571bf0)
    /usr/local/go/src/text/template/exec.go:262 +0x142
text/template.(*Template).execute(0xc01158e8c0, 0x1213640, 0xc0115a0620, 0xec0b40, 0xc01133fc80, 0x0, 0x0)
    /usr/local/go/src/text/template/exec.go:217 +0x215
text/template.(*Template).Execute(0xc01158e8c0, 0x1213640, 0xc0115a0620, 0xec0b40, 0xc01133fc80, 0xc01155ef00, 0xc01155ef10)
    /usr/local/go/src/text/template/exec.go:200 +0x53
html/template.(*Template).Execute(0xc0115718c0, 0x1213640, 0xc0115a0620, 0xec0b40, 0xc01133fc80, 0xc00a5d0001, 0x0)
    /usr/local/go/src/html/template/template.go:122 +0x8c
github.com/xyproto/algernon/engine.(*Config).AmberPage(0xc00057c000, 0x1221140, 0xc011382780, 0xc011357700, 0xc0111cb5f0, 0x23, 0xc00a5dadc0, 0xb0, 0xb0, 0xc01133fc80)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/rendering.go:635 +0x467
github.com/xyproto/algernon/engine.(*Config).FilePage(0xc00057c000, 0x1221140, 0xc011382780, 0xc011357700, 0xc0111cb5f0, 0x23, 0xfdae88, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:223 +0x14c6
github.com/xyproto/algernon/engine.(*Config).DirPage(0xc00057c000, 0x1221140, 0xc011382780, 0xc011357700, 0x7ffe0ceb862e, 0xf, 0xc00ff4e9e0, 0x18, 0xfd69eb, 0x7)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/dirhandler.go:139 +0x2b8
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc00ee277a0, 0xc011357700)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:484 +0x49e
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc00ee277a0, 0xc011357700)
    /usr/local/go/src/net/http/server.go:1964 +0x44
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc00ee277a0, 0xc011357700)
    /usr/local/go/src/net/http/server.go:2361 +0x127
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc00ee277a0, 0xc011357700)
    /usr/local/go/src/net/http/server.go:2741 +0xab
net/http.(*conn).serve(0xc00a2c4640, 0x12230c0, 0xc000530e80)
    /usr/local/go/src/net/http/server.go:1847 +0x646
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 134 [semacquire]:
sync.runtime_SemacquireMutex(0xc00b4a0cbc, 0x1225100)
    /usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc00b4a0cb8)
    /usr/local/go/src/sync/mutex.go:134 +0xff
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).beginRWTx(0xc00b4a0b40, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:512 +0x5e
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Begin(0xc00b4a0b40, 0xf04301, 0xf1de80, 0x1227600, 0xc00ffb80a0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:461 +0x38
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Update(0xc00b4a0b40, 0xc00ffb7fa8, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:579 +0x3c
github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt.(*KeyValue).Inc(0xc0112aa1a0, 0xc011ab3963, 0x7, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt/simplebolt.go:653 +0xab
github.com/xyproto/algernon/lua/datastruct.kvInc(0xc011c2e000, 0x2)
    /home/ubuntu/go/src/github.com/xyproto/algernon/lua/datastruct/keyvalue.go:77 +0x8b
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.callGFunction(0xc011c2e000, 0x1, 0xc011c45400)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:136 +0x40
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.init.3.func27(0xc011c2e000, 0x80000003, 0xc011c24000, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:778 +0xf44
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.mainLoop(0xc011c2e000, 0xc011c24000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:31 +0xda
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).callR(0xc011c2e000, 0x0, 0xffffffffffffffff, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:876 +0x247
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).Call(0xc011c2e000, 0x0, 0xffffffffffffffff)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1613 +0x48
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).PCall(0xc011c2e000, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1676 +0xda
github.com/xyproto/algernon/engine.(*Config).LuaFunctionMap.func1.1(0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/lua.go:303 +0x299
reflect.Value.call(0xe996c0, 0xc01112f5e0, 0x13, 0xfcbef4, 0x4, 0x1c1f5f8, 0x1, 0x0, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xe996c0, 0xc01112f5e0, 0x13, 0x1c1f5f8, 0x0, 0x0, 0x98, 0x7f4e1d25eb00, 0x124e640)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.call(0xea2f60, 0xc00a68fa20, 0x94, 0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /usr/local/go/src/text/template/funcs.go:278 +0x3c0
reflect.Value.call(0xeba5c0, 0x1093fe8, 0x13, 0xfcbef4, 0x4, 0xc011be2bc0, 0x2, 0x1, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xeba5c0, 0x1093fe8, 0x13, 0xc011be2bc0, 0x1, 0x1, 0x1225d40, 0xc011be8c30, 0xfc6000)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.(*state).evalCall(0xc00ffb94c8, 0xec0b40, 0xc011b7aa50, 0x15, 0xeba5c0, 0x1093fe8, 0x13, 0x1225cc0, 0xc011be8bd0, 0xc011c081eb, ...)
    /usr/local/go/src/text/template/exec.go:695 +0x6bd
text/template.(*state).evalFunction(0xc00ffb94c8, 0xec0b40, 0xc011b7aa50, 0x15, 0xc011be8c00, 0x1225cc0, 0xc011be8bd0, 0xc011be2aa0, 0x2, 0x2, ...)
    /usr/local/go/src/text/template/exec.go:563 +0x172
text/template.(*state).evalCommand(0xc00ffb94c8, 0xec0b40, 0xc011b7aa50, 0x15, 0xc011be8bd0, 0xec12c0, 0x1c1f5f8, 0x99, 0xc00ffb9318, 0x951ca7, ...)
    /usr/local/go/src/text/template/exec.go:460 +0x5e9
text/template.(*state).evalPipeline(0xc00ffb94c8, 0xec0b40, 0xc011b7aa50, 0x15, 0xc011bb3860, 0x0, 0x0, 0x98)
    /usr/local/go/src/text/template/exec.go:429 +0x126
text/template.(*state).walk(0xc00ffb94c8, 0xec0b40, 0xc011b7aa50, 0x15, 0x1225bc0, 0xc011be8c60)
    /usr/local/go/src/text/template/exec.go:254 +0x49b
text/template.(*state).walk(0xc00ffb94c8, 0xec0b40, 0xc011b7aa50, 0x15, 0x1225e00, 0xc011be89c0)
    /usr/local/go/src/text/template/exec.go:262 +0x142
text/template.(*Template).execute(0xc011bc6740, 0x1213640, 0xc011bb6cb0, 0xec0b40, 0xc011b7aa50, 0x0, 0x0)
    /usr/local/go/src/text/template/exec.go:217 +0x215
text/template.(*Template).Execute(0xc011bc6740, 0x1213640, 0xc011bb6cb0, 0xec0b40, 0xc011b7aa50, 0xc011bb2de0, 0xc011bb2df0)
    /usr/local/go/src/text/template/exec.go:200 +0x53
html/template.(*Template).Execute(0xc011be8690, 0x1213640, 0xc011bb6cb0, 0xec0b40, 0xc011b7aa50, 0xc00eb10001, 0x0)
    /usr/local/go/src/html/template/template.go:122 +0x8c
github.com/xyproto/algernon/engine.(*Config).AmberPage(0xc00057c000, 0x1221140, 0xc011b88460, 0xc011b65700, 0xc0118ef4d0, 0x23, 0xc00eb1def0, 0xb0, 0xb0, 0xc011b7aa50)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/rendering.go:635 +0x467
github.com/xyproto/algernon/engine.(*Config).FilePage(0xc00057c000, 0x1221140, 0xc011b88460, 0xc011b65700, 0xc0118ef4d0, 0x23, 0xfdae88, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:223 +0x14c6
github.com/xyproto/algernon/engine.(*Config).DirPage(0xc00057c000, 0x1221140, 0xc011b88460, 0xc011b65700, 0x7ffe0ceb862e, 0xf, 0xc011920580, 0x18, 0xfd69eb, 0x7)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/dirhandler.go:139 +0x2b8
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc011b0c0e0, 0xc011b65700)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:484 +0x49e
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc011b0c0e0, 0xc011b65700)
    /usr/local/go/src/net/http/server.go:1964 +0x44
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc011b0c0e0, 0xc011b65700)
    /usr/local/go/src/net/http/server.go:2361 +0x127
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc011b0c0e0, 0xc011b65700)
    /usr/local/go/src/net/http/server.go:2741 +0xab
net/http.(*conn).serve(0xc00a4454a0, 0x12230c0, 0xc005be5ac0)
    /usr/local/go/src/net/http/server.go:1847 +0x646
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 31 [semacquire]:
sync.runtime_SemacquireMutex(0xc00b4a0cbc, 0x1225100)
    /usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc00b4a0cb8)
    /usr/local/go/src/sync/mutex.go:134 +0xff
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).beginRWTx(0xc00b4a0b40, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:512 +0x5e
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Begin(0xc00b4a0b40, 0xf04301, 0xf1de80, 0x1227600, 0xc00eb3e0a0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:461 +0x38
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Update(0xc00b4a0b40, 0xc00eb3dfa8, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:579 +0x3c
github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt.(*KeyValue).Inc(0xc0117ef100, 0xc011838183, 0x7, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt/simplebolt.go:653 +0xab
github.com/xyproto/algernon/lua/datastruct.kvInc(0xc011088c80, 0x2)
    /home/ubuntu/go/src/github.com/xyproto/algernon/lua/datastruct/keyvalue.go:77 +0x8b
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.callGFunction(0xc011088c80, 0x1, 0xc0118ba2c0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:136 +0x40
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.init.3.func27(0xc011088c80, 0x80000003, 0xc011171000, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:778 +0xf44
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.mainLoop(0xc011088c80, 0xc011171000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:31 +0xda
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).callR(0xc011088c80, 0x0, 0xffffffffffffffff, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:876 +0x247
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).Call(0xc011088c80, 0x0, 0xffffffffffffffff)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1613 +0x48
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).PCall(0xc011088c80, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1676 +0xda
github.com/xyproto/algernon/engine.(*Config).LuaFunctionMap.func1.1(0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/lua.go:303 +0x299
reflect.Value.call(0xe996c0, 0xc01112e550, 0x13, 0xfcbef4, 0x4, 0x1c1f5f8, 0x1, 0x0, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xe996c0, 0xc01112e550, 0x13, 0x1c1f5f8, 0x0, 0x0, 0x98, 0x7f4e1d25eb00, 0x124e640)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.call(0xea2f60, 0xc00bae5c40, 0x94, 0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /usr/local/go/src/text/template/funcs.go:278 +0x3c0
reflect.Value.call(0xeba5c0, 0x1093fe8, 0x13, 0xfcbef4, 0x4, 0xc01188e0e0, 0x2, 0x1, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xeba5c0, 0x1093fe8, 0x13, 0xc01188e0e0, 0x1, 0x1, 0x1225d40, 0xc011886450, 0xfc6000)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.(*state).evalCall(0xc00eb3f4c8, 0xec0b40, 0xc0117e0270, 0x15, 0xeba5c0, 0x1093fe8, 0x13, 0x1225cc0, 0xc0118863f0, 0xc010343aab, ...)
    /usr/local/go/src/text/template/exec.go:695 +0x6bd
text/template.(*state).evalFunction(0xc00eb3f4c8, 0xec0b40, 0xc0117e0270, 0x15, 0xc011886420, 0x1225cc0, 0xc0118863f0, 0xc0117f1fc0, 0x2, 0x2, ...)
    /usr/local/go/src/text/template/exec.go:563 +0x172
text/template.(*state).evalCommand(0xc00eb3f4c8, 0xec0b40, 0xc0117e0270, 0x15, 0xc0118863f0, 0xec12c0, 0x1c1f5f8, 0x99, 0xc00eb3f318, 0x951ca7, ...)
    /usr/local/go/src/text/template/exec.go:460 +0x5e9
text/template.(*state).evalPipeline(0xc00eb3f4c8, 0xec0b40, 0xc0117e0270, 0x15, 0xc0111b9ec0, 0x0, 0x0, 0x98)
    /usr/local/go/src/text/template/exec.go:429 +0x126
text/template.(*state).walk(0xc00eb3f4c8, 0xec0b40, 0xc0117e0270, 0x15, 0x1225bc0, 0xc011886480)
    /usr/local/go/src/text/template/exec.go:254 +0x49b
text/template.(*state).walk(0xc00eb3f4c8, 0xec0b40, 0xc0117e0270, 0x15, 0x1225e00, 0xc0118861e0)
    /usr/local/go/src/text/template/exec.go:262 +0x142
text/template.(*Template).execute(0xc0117f5780, 0x1213640, 0xc011821f10, 0xec0b40, 0xc0117e0270, 0x0, 0x0)
    /usr/local/go/src/text/template/exec.go:217 +0x215
text/template.(*Template).Execute(0xc0117f5780, 0x1213640, 0xc011821f10, 0xec0b40, 0xc0117e0270, 0xc0111b9440, 0xc0111b9450)
    /usr/local/go/src/text/template/exec.go:200 +0x53
html/template.(*Template).Execute(0xc0117e1e90, 0x1213640, 0xc011821f10, 0xec0b40, 0xc0117e0270, 0xc00eb10001, 0x0)
    /usr/local/go/src/html/template/template.go:122 +0x8c
github.com/xyproto/algernon/engine.(*Config).AmberPage(0xc00057c000, 0x1221140, 0xc011187980, 0xc0117de000, 0xc011005800, 0x23, 0xc00eb1d8c0, 0xb0, 0xb0, 0xc0117e0270)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/rendering.go:635 +0x467
github.com/xyproto/algernon/engine.(*Config).FilePage(0xc00057c000, 0x1221140, 0xc011187980, 0xc0117de000, 0xc011005800, 0x23, 0xfdae88, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:223 +0x14c6
github.com/xyproto/algernon/engine.(*Config).DirPage(0xc00057c000, 0x1221140, 0xc011187980, 0xc0117de000, 0x7ffe0ceb862e, 0xf, 0xc010795bc0, 0x18, 0xfd69eb, 0x7)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/dirhandler.go:139 +0x2b8
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc00eb6fb20, 0xc0117de000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:484 +0x49e
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc00eb6fb20, 0xc0117de000)
    /usr/local/go/src/net/http/server.go:1964 +0x44
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc00eb6fb20, 0xc0117de000)
    /usr/local/go/src/net/http/server.go:2361 +0x127
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc00eb6fb20, 0xc0117de000)
    /usr/local/go/src/net/http/server.go:2741 +0xab
net/http.(*conn).serve(0xc00a4446e0, 0x12230c0, 0xc0019f0580)
    /usr/local/go/src/net/http/server.go:1847 +0x646
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 42 [semacquire]:
sync.runtime_SemacquireMutex(0xc00b4a0cbc, 0x0)
    /usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc00b4a0cb8)
    /usr/local/go/src/sync/mutex.go:134 +0xff
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).beginRWTx(0xc00b4a0b40, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:512 +0x5e
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Begin(0xc00b4a0b40, 0xc011f25201, 0xc011f24778, 0x8, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:461 +0x38
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Update(0xc00b4a0b40, 0xc00eb41f10, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:579 +0x3c
github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt.NewKeyValue(0xc00b4a0b40, 0xc011f24778, 0x8, 0x7f4e1d26f850, 0xc00a398480, 0xdc0bb3f0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt/simplebolt.go:586 +0xa6
github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt.(*BoltCreator).NewKeyValue(0xc011d94050, 0xc011f24778, 0x8, 0x10, 0x415584, 0xc00eb41fd8, 0x74af39)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt/creator.go:40 +0x42
github.com/xyproto/algernon/lua/datastruct.newKeyValue(0xc0120425a0, 0x1223840, 0xc011d94050, 0xc011f24778, 0x8, 0x4215a8, 0xc00a6ca600, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/lua/datastruct/keyvalue.go:28 +0x4f
github.com/xyproto/algernon/lua/datastruct.LoadKeyValue.func1(0xc0120425a0, 0xc012240050)
    /home/ubuntu/go/src/github.com/xyproto/algernon/lua/datastruct/keyvalue.go:147 +0xaf
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.callGFunction(0xc0120425a0, 0x0, 0xc00eb421d8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:136 +0x40
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.init.3.func26(0xc0120425a0, 0x7c000402, 0xc012240000, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:717 +0x394
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.mainLoop(0xc0120425a0, 0xc012240000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:31 +0xda
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).callR(0xc0120425a0, 0x0, 0xffffffffffffffff, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:876 +0x247
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).Call(0xc0120425a0, 0x0, 0xffffffffffffffff)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1613 +0x48
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).PCall(0xc0120425a0, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1676 +0xda
github.com/xyproto/algernon/engine.(*Config).LuaFunctionMap.func1.1(0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/lua.go:303 +0x299
reflect.Value.call(0xe996c0, 0xc011f0e230, 0x13, 0xfcbef4, 0x4, 0x1c1f5f8, 0x1, 0x0, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xe996c0, 0xc011f0e230, 0x13, 0x1c1f5f8, 0x0, 0x0, 0x98, 0x7f4e1d26f850, 0x124e640)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.call(0xea2f60, 0xc00a6b4a30, 0x94, 0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /usr/local/go/src/text/template/funcs.go:278 +0x3c0
reflect.Value.call(0xeba5c0, 0x1093fe8, 0x13, 0xfcbef4, 0x4, 0xc012044760, 0x2, 0x1, 0xfc6000, 0xc000058f70, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xeba5c0, 0x1093fe8, 0x13, 0xc012044760, 0x1, 0x1, 0x1225d40, 0xc0120b24b0, 0xfc6000)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.(*state).evalCall(0xc00eb434c8, 0xec0b40, 0xc011f1c2d0, 0x15, 0xeba5c0, 0x1093fe8, 0x13, 0x1225cc0, 0xc0120b2450, 0xc0120be1eb, ...)
    /usr/local/go/src/text/template/exec.go:695 +0x6bd
text/template.(*state).evalFunction(0xc00eb434c8, 0xec0b40, 0xc011f1c2d0, 0x15, 0xc0120b2480, 0x1225cc0, 0xc0120b2450, 0xc012044640, 0x2, 0x2, ...)
    /usr/local/go/src/text/template/exec.go:563 +0x172
text/template.(*state).evalCommand(0xc00eb434c8, 0xec0b40, 0xc011f1c2d0, 0x15, 0xc0120b2450, 0xec12c0, 0x1c1f5f8, 0x99, 0xc00eb43318, 0x951ca7, ...)
    /usr/local/go/src/text/template/exec.go:460 +0x5e9
text/template.(*state).evalPipeline(0xc00eb434c8, 0xec0b40, 0xc011f1c2d0, 0x15, 0xc011f3bc80, 0x0, 0x0, 0x98)
    /usr/local/go/src/text/template/exec.go:429 +0x126
text/template.(*state).walk(0xc00eb434c8, 0xec0b40, 0xc011f1c2d0, 0x15, 0x1225bc0, 0xc0120b24e0)
    /usr/local/go/src/text/template/exec.go:254 +0x49b
text/template.(*state).walk(0xc00eb434c8, 0xec0b40, 0xc011f1c2d0, 0x15, 0x1225e00, 0xc0120b2240)
    /usr/local/go/src/text/template/exec.go:262 +0x142
text/template.(*Template).execute(0xc011f4b900, 0x1213640, 0xc0120009a0, 0xec0b40, 0xc011f1c2d0, 0x0, 0x0)
    /usr/local/go/src/text/template/exec.go:217 +0x215
text/template.(*Template).Execute(0xc011f4b900, 0x1213640, 0xc0120009a0, 0xec0b40, 0xc011f1c2d0, 0xc011f3b200, 0xc011f3b210)
    /usr/local/go/src/text/template/exec.go:200 +0x53
html/template.(*Template).Execute(0xc011f1def0, 0x1213640, 0xc0120009a0, 0xec0b40, 0xc011f1c2d0, 0xc012030001, 0x0)
    /usr/local/go/src/html/template/template.go:122 +0x8c
github.com/xyproto/algernon/engine.(*Config).AmberPage(0xc00057c000, 0x1221140, 0xc011f36000, 0xc011f1e000, 0xc011f38570, 0x23, 0xc012034160, 0xb0, 0xb0, 0xc011f1c2d0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/rendering.go:635 +0x467
github.com/xyproto/algernon/engine.(*Config).FilePage(0xc00057c000, 0x1221140, 0xc011f36000, 0xc011f1e000, 0xc011f38570, 0x23, 0xfdae88, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:223 +0x14c6
github.com/xyproto/algernon/engine.(*Config).DirPage(0xc00057c000, 0x1221140, 0xc011f36000, 0xc011f1e000, 0x7ffe0ceb862e, 0xf, 0xc011f20060, 0x18, 0xfd69eb, 0x7)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/dirhandler.go:139 +0x2b8
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc011f2c000, 0xc011f1e000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:484 +0x49e
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc011f2c000, 0xc011f1e000)
    /usr/local/go/src/net/http/server.go:1964 +0x44
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc011f2c000, 0xc011f1e000)
    /usr/local/go/src/net/http/server.go:2361 +0x127
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc011f2c000, 0xc011f1e000)
    /usr/local/go/src/net/http/server.go:2741 +0xab
net/http.(*conn).serve(0xc00a3c80a0, 0x12230c0, 0xc000364980)
    /usr/local/go/src/net/http/server.go:1847 +0x646
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 379 [IO wait]:
internal/poll.runtime_pollWait(0x7f4e1d2212d0, 0x72, 0xc00a3e0e58)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc010a15398, 0x72, 0xffffffffffffff00, 0x1216940, 0x19dc968)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc010a15398, 0xc010a6cf00, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc010a15380, 0xc010a6cf71, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc010a15380, 0xc010a6cf71, 0x1, 0x1, 0x4, 0x7, 0x113)
    /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc010862558, 0xc010a6cf71, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:177 +0x68
net/http.(*connReader).backgroundRead(0xc010a6cf60)
    /usr/local/go/src/net/http/server.go:676 +0x5a
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2

goroutine 79 [semacquire]:
sync.runtime_SemacquireMutex(0xc00018fa24, 0x0)
    /usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc00018fa20)
    /usr/local/go/src/sync/mutex.go:134 +0xff
sync.(*RWMutex).Lock(0xc00018fa20)
    /usr/local/go/src/sync/rwmutex.go:93 +0x2d
github.com/xyproto/algernon/engine.(*Config).LuaFunctionMap(0xc00057c000, 0x1221140, 0xc011485dc0, 0xc010c64500, 0xc01228c400, 0x1b7, 0x3b7, 0xc011e06620, 0x20, 0x0, ...)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/lua.go:225 +0x5e
github.com/xyproto/algernon/engine.(*Config).FilePage(0xc00057c000, 0x1221140, 0xc011485dc0, 0xc010c64500, 0xc011e31560, 0x23, 0xfdae88, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:196 +0x1555
github.com/xyproto/algernon/engine.(*Config).DirPage(0xc00057c000, 0x1221140, 0xc011485dc0, 0xc010c64500, 0x7ffe0ceb862e, 0xf, 0xc011e06580, 0x18, 0xfd69eb, 0x7)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/dirhandler.go:139 +0x2b8
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc0120da380, 0xc010c64500)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:484 +0x49e
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc0120da380, 0xc010c64500)
    /usr/local/go/src/net/http/server.go:1964 +0x44
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc0120da380, 0xc010c64500)
    /usr/local/go/src/net/http/server.go:2361 +0x127
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc0120da380, 0xc010c64500)
    /usr/local/go/src/net/http/server.go:2741 +0xab
net/http.(*conn).serve(0xc00eb31360, 0x12230c0, 0xc001c7acc0)
    /usr/local/go/src/net/http/server.go:1847 +0x646
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 468 [IO wait]:
internal/poll.runtime_pollWait(0x7f4de01fdd10, 0x72, 0xc00a391e58)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc01137be98, 0x72, 0xffffffffffffff00, 0x1216940, 0x19dc968)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc01137be98, 0xc011e3e400, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc01137be80, 0xc011e3e4c1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc01137be80, 0xc011e3e4c1, 0x1, 0x1, 0xc000364a58, 0xc00a391f68, 0x473315)
    /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc00ffd0728, 0xc011e3e4c1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:177 +0x68
net/http.(*connReader).backgroundRead(0xc011e3e4b0)
    /usr/local/go/src/net/http/server.go:676 +0x5a
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2

goroutine 239 [semacquire]:
sync.runtime_SemacquireMutex(0xc00b4a0cbc, 0x0)
    /usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc00b4a0cb8)
    /usr/local/go/src/sync/mutex.go:134 +0xff
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).beginRWTx(0xc00b4a0b40, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:512 +0x5e
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Begin(0xc00b4a0b40, 0xc0121fa901, 0xc011df2968, 0x8, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:461 +0x38
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Update(0xc00b4a0b40, 0xc010e93f10, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:579 +0x3c
github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt.NewKeyValue(0xc00b4a0b40, 0xc011df2968, 0x8, 0x7f4e1d25dd80, 0xd0, 0xd0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt/simplebolt.go:586 +0xa6
github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt.(*BoltCreator).NewKeyValue(0xc011d341a8, 0xc011df2968, 0x8, 0x0, 0x1c0, 0xc010e93fd8, 0x74af39)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt/creator.go:40 +0x42
github.com/xyproto/algernon/lua/datastruct.newKeyValue(0xc0121ec280, 0x1223840, 0xc011d341a8, 0xc011df2968, 0x8, 0x40dabf, 0x403a69, 0xc010e940c0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/lua/datastruct/keyvalue.go:28 +0x4f
github.com/xyproto/algernon/lua/datastruct.LoadKeyValue.func1(0xc0121ec280, 0xf1c040)
    /home/ubuntu/go/src/github.com/xyproto/algernon/lua/datastruct/keyvalue.go:147 +0xaf
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.callGFunction(0xc0121ec280, 0x0, 0x7f4e1d25dd01)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:136 +0x40
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.init.3.func26(0xc0121ec280, 0x7c000402, 0xc012135000, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:717 +0x394
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.mainLoop(0xc0121ec280, 0xc012135000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:31 +0xda
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).callR(0xc0121ec280, 0x0, 0xffffffffffffffff, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:876 +0x247
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).Call(0xc0121ec280, 0x0, 0xffffffffffffffff)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1613 +0x48
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).PCall(0xc0121ec280, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1676 +0xda
github.com/xyproto/algernon/engine.(*Config).LuaFunctionMap.func1.1(0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/lua.go:303 +0x299
reflect.Value.call(0xe996c0, 0xc011df43c0, 0x13, 0xfcbef4, 0x4, 0x1c1f5f8, 0x1, 0x0, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xe996c0, 0xc011df43c0, 0x13, 0x1c1f5f8, 0x0, 0x0, 0x98, 0x7f4e1d25dd80, 0x124e640)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.call(0xea2f60, 0xc00a6bbdb0, 0x94, 0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /usr/local/go/src/text/template/funcs.go:278 +0x3c0
reflect.Value.call(0xeba5c0, 0x1093fe8, 0x13, 0xfcbef4, 0x4, 0xc011f83720, 0x2, 0x1, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xeba5c0, 0x1093fe8, 0x13, 0xc011f83720, 0x1, 0x1, 0x1225d40, 0xc0121e4d20, 0xfc6000)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.(*state).evalCall(0xc010e954c8, 0xec0b40, 0xc011e3e7e0, 0x15, 0xeba5c0, 0x1093fe8, 0x13, 0x1225cc0, 0xc0121e4cc0, 0xc01200c42b, ...)
    /usr/local/go/src/text/template/exec.go:695 +0x6bd
text/template.(*state).evalFunction(0xc010e954c8, 0xec0b40, 0xc011e3e7e0, 0x15, 0xc0121e4cf0, 0x1225cc0, 0xc0121e4cc0, 0xc011f83600, 0x2, 0x2, ...)
    /usr/local/go/src/text/template/exec.go:563 +0x172
text/template.(*state).evalCommand(0xc010e954c8, 0xec0b40, 0xc011e3e7e0, 0x15, 0xc0121e4cc0, 0xec12c0, 0x1c1f5f8, 0x99, 0xc010e95318, 0x951ca7, ...)
    /usr/local/go/src/text/template/exec.go:460 +0x5e9
text/template.(*state).evalPipeline(0xc010e954c8, 0xec0b40, 0xc011e3e7e0, 0x15, 0xc01248c480, 0x0, 0x0, 0x98)
    /usr/local/go/src/text/template/exec.go:429 +0x126
text/template.(*state).walk(0xc010e954c8, 0xec0b40, 0xc011e3e7e0, 0x15, 0x1225bc0, 0xc0121e4d50)
    /usr/local/go/src/text/template/exec.go:254 +0x49b
text/template.(*state).walk(0xc010e954c8, 0xec0b40, 0xc011e3e7e0, 0x15, 0x1225e00, 0xc0121e4ab0)
    /usr/local/go/src/text/template/exec.go:262 +0x142
text/template.(*Template).execute(0xc01162cc80, 0x1213640, 0xc01223ed20, 0xec0b40, 0xc011e3e7e0, 0x0, 0x0)
    /usr/local/go/src/text/template/exec.go:217 +0x215
text/template.(*Template).Execute(0xc01162cc80, 0x1213640, 0xc01223ed20, 0xec0b40, 0xc011e3e7e0, 0xc011e431a0, 0xc011e431b0)
    /usr/local/go/src/text/template/exec.go:200 +0x53
html/template.(*Template).Execute(0xc0119dc960, 0x1213640, 0xc01223ed20, 0xec0b40, 0xc011e3e7e0, 0xc012310001, 0x0)
    /usr/local/go/src/html/template/template.go:122 +0x8c
github.com/xyproto/algernon/engine.(*Config).AmberPage(0xc00057c000, 0x1221140, 0xc01162f0e0, 0xc011615600, 0xc0111cbf80, 0x23, 0xc01231e160, 0xb0, 0xb0, 0xc011e3e7e0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/rendering.go:635 +0x467
github.com/xyproto/algernon/engine.(*Config).FilePage(0xc00057c000, 0x1221140, 0xc01162f0e0, 0xc011615600, 0xc0111cbf80, 0x23, 0xfdae88, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:223 +0x14c6
github.com/xyproto/algernon/engine.(*Config).DirPage(0xc00057c000, 0x1221140, 0xc01162f0e0, 0xc011615600, 0x7ffe0ceb862e, 0xf, 0xc00ff4ed40, 0x18, 0xfd69eb, 0x7)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/dirhandler.go:139 +0x2b8
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc00ee27ce0, 0xc011615600)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:484 +0x49e
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc00ee27ce0, 0xc011615600)
    /usr/local/go/src/net/http/server.go:1964 +0x44
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc00ee27ce0, 0xc011615600)
    /usr/local/go/src/net/http/server.go:2361 +0x127
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc00ee27ce0, 0xc011615600)
    /usr/local/go/src/net/http/server.go:2741 +0xab
net/http.(*conn).serve(0xc00fef6e60, 0x12230c0, 0xc010e04d00)
    /usr/local/go/src/net/http/server.go:1847 +0x646
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 221 [IO wait]:
internal/poll.runtime_pollWait(0x7f4e1d2213a0, 0x72, 0xc00a392e58)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc01060ef18, 0x72, 0xffffffffffffff00, 0x1216940, 0x19dc968)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc01060ef18, 0xc0105e9900, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc01060ef00, 0xc0105e9901, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc01060ef00, 0xc0105e9901, 0x1, 0x1, 0x4, 0x7, 0x113)
    /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc010610080, 0xc0105e9901, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:177 +0x68
net/http.(*connReader).backgroundRead(0xc0105e98f0)
    /usr/local/go/src/net/http/server.go:676 +0x5a
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2

goroutine 121 [semacquire]:
sync.runtime_SemacquireMutex(0xc00b4a0cbc, 0x0)
    /usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc00b4a0cb8)
    /usr/local/go/src/sync/mutex.go:134 +0xff
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).beginRWTx(0xc00b4a0b40, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:512 +0x5e
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Begin(0xc00b4a0b40, 0xc011d3aa01, 0xc011c5a698, 0x8, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:461 +0x38
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Update(0xc00b4a0b40, 0xc00ee09f10, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:579 +0x3c
github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt.NewKeyValue(0xc00b4a0b40, 0xc011c5a698, 0x8, 0x7f4e1d26ff10, 0xc00a398c00, 0xbdfb864c)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt/simplebolt.go:586 +0xa6
github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt.(*BoltCreator).NewKeyValue(0xc011f10018, 0xc011c5a698, 0x8, 0x10, 0xf1c040, 0xc00ee09fd8, 0x74af39)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt/creator.go:40 +0x42
github.com/xyproto/algernon/lua/datastruct.newKeyValue(0xc011d725a0, 0x1223840, 0xc011f10018, 0xc011c5a698, 0x8, 0x4215a8, 0xc00a6ab930, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/lua/datastruct/keyvalue.go:28 +0x4f
github.com/xyproto/algernon/lua/datastruct.LoadKeyValue.func1(0xc011d725a0, 0xc011df6050)
    /home/ubuntu/go/src/github.com/xyproto/algernon/lua/datastruct/keyvalue.go:147 +0xaf
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.callGFunction(0xc011d725a0, 0x0, 0xc00ee0a1d8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:136 +0x40
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.init.3.func26(0xc011d725a0, 0x7c000402, 0xc011df6000, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:717 +0x394
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.mainLoop(0xc011d725a0, 0xc011df6000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:31 +0xda
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).callR(0xc011d725a0, 0x0, 0xffffffffffffffff, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:876 +0x247
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).Call(0xc011d725a0, 0x0, 0xffffffffffffffff)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1613 +0x48
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).PCall(0xc011d725a0, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1676 +0xda
github.com/xyproto/algernon/engine.(*Config).LuaFunctionMap.func1.1(0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/lua.go:303 +0x299
reflect.Value.call(0xe996c0, 0xc011d040a0, 0x13, 0xfcbef4, 0x4, 0x1c1f5f8, 0x1, 0x0, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xe996c0, 0xc011d040a0, 0x13, 0x1c1f5f8, 0x0, 0x0, 0x98, 0x7f4e1d26ff10, 0x124e640)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.call(0xea2f60, 0xc00a69bd60, 0x94, 0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /usr/local/go/src/text/template/funcs.go:278 +0x3c0
reflect.Value.call(0xeba5c0, 0x1093fe8, 0x13, 0xfcbef4, 0x4, 0xc011d4cc00, 0x2, 0x1, 0xfc6000, 0xc00005afa0, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xeba5c0, 0x1093fe8, 0x13, 0xc011d4cc00, 0x1, 0x1, 0x1225d40, 0xc011d03320, 0xfc6000)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.(*state).evalCall(0xc00ee0b4c8, 0xec0b40, 0xc0114532c0, 0x15, 0xeba5c0, 0x1093fe8, 0x13, 0x1225cc0, 0xc011d032c0, 0xc011da61eb, ...)
    /usr/local/go/src/text/template/exec.go:695 +0x6bd
text/template.(*state).evalFunction(0xc00ee0b4c8, 0xec0b40, 0xc0114532c0, 0x15, 0xc011d032f0, 0x1225cc0, 0xc011d032c0, 0xc011d4cae0, 0x2, 0x2, ...)
    /usr/local/go/src/text/template/exec.go:563 +0x172
text/template.(*state).evalCommand(0xc00ee0b4c8, 0xec0b40, 0xc0114532c0, 0x15, 0xc011d032c0, 0xec12c0, 0x1c1f5f8, 0x99, 0xc00ee0b318, 0x951ca7, ...)
    /usr/local/go/src/text/template/exec.go:460 +0x5e9
text/template.(*state).evalPipeline(0xc00ee0b4c8, 0xec0b40, 0xc0114532c0, 0x15, 0xc011d36d20, 0x0, 0x0, 0x98)
    /usr/local/go/src/text/template/exec.go:429 +0x126
text/template.(*state).walk(0xc00ee0b4c8, 0xec0b40, 0xc0114532c0, 0x15, 0x1225bc0, 0xc011d03350)
    /usr/local/go/src/text/template/exec.go:254 +0x49b
text/template.(*state).walk(0xc00ee0b4c8, 0xec0b40, 0xc0114532c0, 0x15, 0x1225e00, 0xc011d030b0)
    /usr/local/go/src/text/template/exec.go:262 +0x142
text/template.(*Template).execute(0xc011d5c4c0, 0x1213640, 0xc011d22000, 0xec0b40, 0xc0114532c0, 0x0, 0x0)
    /usr/local/go/src/text/template/exec.go:217 +0x215
text/template.(*Template).Execute(0xc011d5c4c0, 0x1213640, 0xc011d22000, 0xec0b40, 0xc0114532c0, 0xc011d362a0, 0xc011d362b0)
    /usr/local/go/src/text/template/exec.go:200 +0x53
html/template.(*Template).Execute(0xc011d02d80, 0x1213640, 0xc011d22000, 0xec0b40, 0xc0114532c0, 0xc011d60001, 0x0)
    /usr/local/go/src/html/template/template.go:122 +0x8c
github.com/xyproto/algernon/engine.(*Config).AmberPage(0xc00057c000, 0x1221140, 0xc011484a00, 0xc01147ec00, 0xc010657800, 0x23, 0xc011d60160, 0xb0, 0xb0, 0xc0114532c0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/rendering.go:635 +0x467
github.com/xyproto/algernon/engine.(*Config).FilePage(0xc00057c000, 0x1221140, 0xc011484a00, 0xc01147ec00, 0xc010657800, 0x23, 0xfdae88, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:223 +0x14c6
github.com/xyproto/algernon/engine.(*Config).DirPage(0xc00057c000, 0x1221140, 0xc011484a00, 0xc01147ec00, 0x7ffe0ceb862e, 0xf, 0xc00f061ca0, 0x18, 0xfd69eb, 0x7)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/dirhandler.go:139 +0x2b8
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc011b441c0, 0xc01147ec00)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:484 +0x49e
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc011b441c0, 0xc01147ec00)
    /usr/local/go/src/net/http/server.go:1964 +0x44
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc011b441c0, 0xc01147ec00)
    /usr/local/go/src/net/http/server.go:2361 +0x127
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc011b441c0, 0xc01147ec00)
    /usr/local/go/src/net/http/server.go:2741 +0xab
net/http.(*conn).serve(0xc00a3c8e60, 0x12230c0, 0xc001e63900)
    /usr/local/go/src/net/http/server.go:1847 +0x646
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 467 [semacquire]:
sync.runtime_SemacquireMutex(0xc00b4a0cbc, 0x0)
    /usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc00b4a0cb8)
    /usr/local/go/src/sync/mutex.go:134 +0xff
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).beginRWTx(0xc00b4a0b40, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:512 +0x5e
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Begin(0xc00b4a0b40, 0xc011df3e01, 0xc011df3308, 0x8, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:461 +0x38
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Update(0xc00b4a0b40, 0xc010e9bf10, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:579 +0x3c
github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt.NewKeyValue(0xc00b4a0b40, 0xc011df3308, 0x8, 0xc010e9bff8, 0x40dabf, 0xc010d1c900)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt/simplebolt.go:586 +0xa6
github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt.(*BoltCreator).NewKeyValue(0xc011e4e120, 0xc011df3308, 0x8, 0x110, 0x110, 0xc010e9bfd8, 0x74af39)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt/creator.go:40 +0x42
github.com/xyproto/algernon/lua/datastruct.newKeyValue(0xc0110886e0, 0x1223840, 0xc011e4e120, 0xc011df3308, 0x8, 0xf3a100, 0x403a69, 0xc010e9c0c0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/lua/datastruct/keyvalue.go:28 +0x4f
github.com/xyproto/algernon/lua/datastruct.LoadKeyValue.func1(0xc0110886e0, 0xf1c040)
    /home/ubuntu/go/src/github.com/xyproto/algernon/lua/datastruct/keyvalue.go:147 +0xaf
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.callGFunction(0xc0110886e0, 0x0, 0x7f4e1d25d601)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:136 +0x40
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.init.3.func26(0xc0110886e0, 0x7c000402, 0xc010d02000, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:717 +0x394
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.mainLoop(0xc0110886e0, 0xc010d02000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:31 +0xda
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).callR(0xc0110886e0, 0x0, 0xffffffffffffffff, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:876 +0x247
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).Call(0xc0110886e0, 0x0, 0xffffffffffffffff)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1613 +0x48
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).PCall(0xc0110886e0, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1676 +0xda
github.com/xyproto/algernon/engine.(*Config).LuaFunctionMap.func1.1(0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/lua.go:303 +0x299
reflect.Value.call(0xe996c0, 0xc0121ea1e0, 0x13, 0xfcbef4, 0x4, 0x1c1f5f8, 0x1, 0x0, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xe996c0, 0xc0121ea1e0, 0x13, 0x1c1f5f8, 0x0, 0x0, 0x98, 0x7f4e1d25d6c0, 0x124e640)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.call(0xea2f60, 0xc00bad2830, 0x94, 0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /usr/local/go/src/text/template/funcs.go:278 +0x3c0
reflect.Value.call(0xeba5c0, 0x1093fe8, 0x13, 0xfcbef4, 0x4, 0xc0110a05c0, 0x2, 0x1, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xeba5c0, 0x1093fe8, 0x13, 0xc0110a05c0, 0x1, 0x1, 0x1225d40, 0xc011671b00, 0xfc6000)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.(*state).evalCall(0xc010e9d4c8, 0xec0b40, 0xc011e295c0, 0x15, 0xeba5c0, 0x1093fe8, 0x13, 0x1225cc0, 0xc011671aa0, 0xc01247842b, ...)
    /usr/local/go/src/text/template/exec.go:695 +0x6bd
text/template.(*state).evalFunction(0xc010e9d4c8, 0xec0b40, 0xc011e295c0, 0x15, 0xc011671ad0, 0x1225cc0, 0xc011671aa0, 0xc0110a0400, 0x2, 0x2, ...)
    /usr/local/go/src/text/template/exec.go:563 +0x172
text/template.(*state).evalCommand(0xc010e9d4c8, 0xec0b40, 0xc011e295c0, 0x15, 0xc011671aa0, 0xec12c0, 0x1c1f5f8, 0x99, 0xc010e9d318, 0x951ca7, ...)
    /usr/local/go/src/text/template/exec.go:460 +0x5e9
text/template.(*state).evalPipeline(0xc010e9d4c8, 0xec0b40, 0xc011e295c0, 0x15, 0xc010a96240, 0x0, 0x0, 0x98)
    /usr/local/go/src/text/template/exec.go:429 +0x126
text/template.(*state).walk(0xc010e9d4c8, 0xec0b40, 0xc011e295c0, 0x15, 0x1225bc0, 0xc011671b30)
    /usr/local/go/src/text/template/exec.go:254 +0x49b
text/template.(*state).walk(0xc010e9d4c8, 0xec0b40, 0xc011e295c0, 0x15, 0x1225e00, 0xc0116714d0)
    /usr/local/go/src/text/template/exec.go:262 +0x142
text/template.(*Template).execute(0xc01158e540, 0x1213640, 0xc011738700, 0xec0b40, 0xc011e295c0, 0x0, 0x0)
    /usr/local/go/src/text/template/exec.go:217 +0x215
text/template.(*Template).Execute(0xc01158e540, 0x1213640, 0xc011738700, 0xec0b40, 0xc011e295c0, 0xc01213b7a0, 0xc01213b7b0)
    /usr/local/go/src/text/template/exec.go:200 +0x53
html/template.(*Template).Execute(0xc011671110, 0x1213640, 0xc011738700, 0xec0b40, 0xc011e295c0, 0xc011f50001, 0x0)
    /usr/local/go/src/html/template/template.go:122 +0x8c
github.com/xyproto/algernon/engine.(*Config).AmberPage(0xc00057c000, 0x1221140, 0xc011dea480, 0xc011e4c200, 0xc01205e570, 0x23, 0xc011f5c370, 0xb0, 0xb0, 0xc011e295c0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/rendering.go:635 +0x467
github.com/xyproto/algernon/engine.(*Config).FilePage(0xc00057c000, 0x1221140, 0xc011dea480, 0xc011e4c200, 0xc01205e570, 0x23, 0xfdae88, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:223 +0x14c6
github.com/xyproto/algernon/engine.(*Config).DirPage(0xc00057c000, 0x1221140, 0xc011dea480, 0xc011e4c200, 0x7ffe0ceb862e, 0xf, 0xc012056060, 0x18, 0xfd69eb, 0x7)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/dirhandler.go:139 +0x2b8
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc011e441c0, 0xc011e4c200)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:484 +0x49e
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc011e441c0, 0xc011e4c200)
    /usr/local/go/src/net/http/server.go:1964 +0x44
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc011e441c0, 0xc011e4c200)
    /usr/local/go/src/net/http/server.go:2361 +0x127
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc011e441c0, 0xc011e4c200)
    /usr/local/go/src/net/http/server.go:2741 +0xab
net/http.(*conn).serve(0xc011236e60, 0x12230c0, 0xc011dec140)
    /usr/local/go/src/net/http/server.go:1847 +0x646
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 92 [semacquire]:
sync.runtime_SemacquireMutex(0xc00b4a0cbc, 0x0)
    /usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc00b4a0cb8)
    /usr/local/go/src/sync/mutex.go:134 +0xff
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).beginRWTx(0xc00b4a0b40, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:512 +0x5e
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Begin(0xc00b4a0b40, 0xc011db7301, 0xc011db6828, 0x8, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:461 +0x38
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Update(0xc00b4a0b40, 0xc00ffb3f10, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:579 +0x3c
github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt.NewKeyValue(0xc00b4a0b40, 0xc011db6828, 0x8, 0x7f4e1d25d000, 0x0, 0x9178d396)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt/simplebolt.go:586 +0xa6
github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt.(*BoltCreator).NewKeyValue(0xc011d341a0, 0xc011db6828, 0x8, 0x10, 0xf1c040, 0xc00ffb3fd8, 0x74af39)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt/creator.go:40 +0x42
github.com/xyproto/algernon/lua/datastruct.newKeyValue(0xc011d98780, 0x1223840, 0xc011d341a0, 0xc011db6828, 0x8, 0x40dabf, 0x403a69, 0xc00ffb40c0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/lua/datastruct/keyvalue.go:28 +0x4f
github.com/xyproto/algernon/lua/datastruct.LoadKeyValue.func1(0xc011d98780, 0xf1c040)
    /home/ubuntu/go/src/github.com/xyproto/algernon/lua/datastruct/keyvalue.go:147 +0xaf
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.callGFunction(0xc011d98780, 0x0, 0x7f4e1d25d001)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:136 +0x40
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.init.3.func26(0xc011d98780, 0x7c000402, 0xc0124ae000, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:717 +0x394
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.mainLoop(0xc011d98780, 0xc0124ae000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:31 +0xda
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).callR(0xc011d98780, 0x0, 0xffffffffffffffff, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:876 +0x247
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).Call(0xc011d98780, 0x0, 0xffffffffffffffff)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1613 +0x48
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).PCall(0xc011d98780, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1676 +0xda
github.com/xyproto/algernon/engine.(*Config).LuaFunctionMap.func1.1(0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/lua.go:303 +0x299
reflect.Value.call(0xe996c0, 0xc011d961e0, 0x13, 0xfcbef4, 0x4, 0x1c1f5f8, 0x1, 0x0, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xe996c0, 0xc011d961e0, 0x13, 0x1c1f5f8, 0x0, 0x0, 0x98, 0x7f4e1d270c90, 0x124e640)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.call(0xea2f60, 0xc00a6cca40, 0x94, 0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /usr/local/go/src/text/template/funcs.go:278 +0x3c0
reflect.Value.call(0xeba5c0, 0x1093fe8, 0x13, 0xfcbef4, 0x4, 0xc012448a20, 0x2, 0x1, 0xfc6000, 0xc00005f840, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xeba5c0, 0x1093fe8, 0x13, 0xc012448a20, 0x1, 0x1, 0x1225d40, 0xc012452cf0, 0xfc6000)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.(*state).evalCall(0xc00ffb54c8, 0xec0b40, 0xc011d90b10, 0x15, 0xeba5c0, 0x1093fe8, 0x13, 0x1225cc0, 0xc012452c90, 0xc0124781eb, ...)
    /usr/local/go/src/text/template/exec.go:695 +0x6bd
text/template.(*state).evalFunction(0xc00ffb54c8, 0xec0b40, 0xc011d90b10, 0x15, 0xc012452cc0, 0x1225cc0, 0xc012452c90, 0xc012448900, 0x2, 0x2, ...)
    /usr/local/go/src/text/template/exec.go:563 +0x172
text/template.(*state).evalCommand(0xc00ffb54c8, 0xec0b40, 0xc011d90b10, 0x15, 0xc012452c90, 0xec12c0, 0x1c1f5f8, 0x99, 0xc00ffb5318, 0x951ca7, ...)
    /usr/local/go/src/text/template/exec.go:460 +0x5e9
text/template.(*state).evalPipeline(0xc00ffb54c8, 0xec0b40, 0xc011d90b10, 0x15, 0xc011dc1ec0, 0x0, 0x0, 0x98)
    /usr/local/go/src/text/template/exec.go:429 +0x126
text/template.(*state).walk(0xc00ffb54c8, 0xec0b40, 0xc011d90b10, 0x15, 0x1225bc0, 0xc012452d20)
    /usr/local/go/src/text/template/exec.go:254 +0x49b
text/template.(*state).walk(0xc00ffb54c8, 0xec0b40, 0xc011d90b10, 0x15, 0x1225e00, 0xc012452a80)
    /usr/local/go/src/text/template/exec.go:262 +0x142
text/template.(*Template).execute(0xc01235bf00, 0x1213640, 0xc01241eb60, 0xec0b40, 0xc011d90b10, 0x0, 0x0)
    /usr/local/go/src/text/template/exec.go:217 +0x215
text/template.(*Template).Execute(0xc01235bf00, 0x1213640, 0xc01241eb60, 0xec0b40, 0xc011d90b10, 0xc011dc1440, 0xc011dc1450)
    /usr/local/go/src/text/template/exec.go:200 +0x53
html/template.(*Template).Execute(0xc012452750, 0x1213640, 0xc01241eb60, 0xec0b40, 0xc011d90b10, 0xc012440001, 0x0)
    /usr/local/go/src/html/template/template.go:122 +0x8c
github.com/xyproto/algernon/engine.(*Config).AmberPage(0xc00057c000, 0x1221140, 0xc011dc62c0, 0xc011dce400, 0xc0120e31d0, 0x23, 0xc01244c160, 0xb0, 0xb0, 0xc011d90b10)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/rendering.go:635 +0x467
github.com/xyproto/algernon/engine.(*Config).FilePage(0xc00057c000, 0x1221140, 0xc011dc62c0, 0xc011dce400, 0xc0120e31d0, 0x23, 0xfdae88, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:223 +0x14c6
github.com/xyproto/algernon/engine.(*Config).DirPage(0xc00057c000, 0x1221140, 0xc011dc62c0, 0xc011dce400, 0x7ffe0ceb862e, 0xf, 0xc0120d0280, 0x18, 0xfd69eb, 0x7)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/dirhandler.go:139 +0x2b8
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc0120da1c0, 0xc011dce400)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:484 +0x49e
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc0120da1c0, 0xc011dce400)
    /usr/local/go/src/net/http/server.go:1964 +0x44
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc0120da1c0, 0xc011dce400)
    /usr/local/go/src/net/http/server.go:2361 +0x127
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc0120da1c0, 0xc011dce400)
    /usr/local/go/src/net/http/server.go:2741 +0xab
net/http.(*conn).serve(0xc00f9d86e0, 0x12230c0, 0xc0103a5580)
    /usr/local/go/src/net/http/server.go:1847 +0x646
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 309 [semacquire]:
sync.runtime_SemacquireMutex(0xc00018fa24, 0x0)
    /usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc00018fa20)
    /usr/local/go/src/sync/mutex.go:134 +0xff
sync.(*RWMutex).Lock(0xc00018fa20)
    /usr/local/go/src/sync/rwmutex.go:93 +0x2d
github.com/xyproto/algernon/engine.(*Config).LuaFunctionMap(0xc00057c000, 0x1221140, 0xc0123ce3c0, 0xc0122b9d00, 0xc01238ec00, 0x1b7, 0x3b7, 0xc011f20460, 0x20, 0x0, ...)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/lua.go:225 +0x5e
github.com/xyproto/algernon/engine.(*Config).FilePage(0xc00057c000, 0x1221140, 0xc0123ce3c0, 0xc0122b9d00, 0xc011f38f00, 0x23, 0xfdae88, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:196 +0x1555
github.com/xyproto/algernon/engine.(*Config).DirPage(0xc00057c000, 0x1221140, 0xc0123ce3c0, 0xc0122b9d00, 0x7ffe0ceb862e, 0xf, 0xc011f203c0, 0x18, 0xfd69eb, 0x7)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/dirhandler.go:139 +0x2b8
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc011f2c1c0, 0xc0122b9d00)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:484 +0x49e
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc011f2c1c0, 0xc0122b9d00)
    /usr/local/go/src/net/http/server.go:1964 +0x44
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc011f2c1c0, 0xc0122b9d00)
    /usr/local/go/src/net/http/server.go:2361 +0x127
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc011f2c1c0, 0xc0122b9d00)
    /usr/local/go/src/net/http/server.go:2741 +0xab
net/http.(*conn).serve(0xc00fef7540, 0x12230c0, 0xc010f06900)
    /usr/local/go/src/net/http/server.go:1847 +0x646
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 264 [IO wait]:
internal/poll.runtime_pollWait(0x7f4e1d221950, 0x72, 0xc00a3e3e58)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc00efc3518, 0x72, 0xffffffffffffff00, 0x1216940, 0x19dc968)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc00efc3518, 0xc00f048400, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc00efc3500, 0xc00f048491, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc00efc3500, 0xc00f048491, 0x1, 0x1, 0xc001e63a98, 0xc00a3e3f68, 0x473315)
    /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0012d7c28, 0xc00f048491, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:177 +0x68
net/http.(*connReader).backgroundRead(0xc00f048480)
    /usr/local/go/src/net/http/server.go:676 +0x5a
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2

goroutine 159 [runnable]:
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).NewClosure(0xc00f4dc5a0, 0x1092cc0, 0x0, 0x0, 0x0, 0xc00a426000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1233 +0x38c
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).SetFuncs(0xc00f4dc5a0, 0xc00fb09680, 0xc0000c1020, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/auxlib.go:302 +0x103
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.OpenChannel(0xc00f4dc5a0, 0x1)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/channellib.go:25 +0x17b
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.callGFunction(0xc00f4dc5a0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:136 +0x40
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.mainLoop(0xc00f4dc5a0, 0xc01027c000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:23 +0xfa
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).callR(0xc00f4dc5a0, 0x1, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:876 +0x247
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).Call(0xc00f4dc5a0, 0x1, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1613 +0x48
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).OpenLibs(0xc00f4dc5a0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/linit.go:52 +0x215
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.NewState(0x0, 0x0, 0x0, 0xf5dbe0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1020 +0xec
github.com/xyproto/algernon/lua/pool.(*LStatePool).New(0xc0018cf320, 0x1226000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/lua/pool/pool.go:26 +0x32
github.com/xyproto/algernon/engine.(*Config).LuaFunctionMap.func1.1(0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/lua.go:288 +0xb8
reflect.Value.call(0xe996c0, 0xc011d96780, 0x13, 0xfcbef4, 0x4, 0x1c1f5f8, 0x1, 0x0, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xe996c0, 0xc011d96780, 0x13, 0x1c1f5f8, 0x0, 0x0, 0x98, 0x7f4e1d25d000, 0x124e640)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.call(0xea2f60, 0xc00a6d5750, 0x94, 0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /usr/local/go/src/text/template/funcs.go:278 +0x3c0
reflect.Value.call(0xeba5c0, 0x1093fe8, 0x13, 0xfcbef4, 0x4, 0xc0111cf780, 0x2, 0x1, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xeba5c0, 0x1093fe8, 0x13, 0xc0111cf780, 0x1, 0x1, 0x1225d40, 0xc00f893470, 0xfc6000)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.(*state).evalCall(0xc00f8f74c8, 0xec0b40, 0xc01239d170, 0x15, 0xeba5c0, 0x1093fe8, 0x13, 0x1225cc0, 0xc00f893410, 0xc011da642b, ...)
    /usr/local/go/src/text/template/exec.go:695 +0x6bd
text/template.(*state).evalFunction(0xc00f8f74c8, 0xec0b40, 0xc01239d170, 0x15, 0xc00f893440, 0x1225cc0, 0xc00f893410, 0xc0111cf660, 0x2, 0x2, ...)
    /usr/local/go/src/text/template/exec.go:563 +0x172
text/template.(*state).evalCommand(0xc00f8f74c8, 0xec0b40, 0xc01239d170, 0x15, 0xc00f893410, 0xec12c0, 0x1c1f5f8, 0x99, 0xc00f8f7318, 0x951ca7, ...)
    /usr/local/go/src/text/template/exec.go:460 +0x5e9
text/template.(*state).evalPipeline(0xc00f8f74c8, 0xec0b40, 0xc01239d170, 0x15, 0xc00fb08ea0, 0x0, 0x0, 0x98)
    /usr/local/go/src/text/template/exec.go:429 +0x126
text/template.(*state).walk(0xc00f8f74c8, 0xec0b40, 0xc01239d170, 0x15, 0x1225bc0, 0xc00f8934a0)
    /usr/local/go/src/text/template/exec.go:254 +0x49b
text/template.(*state).walk(0xc00f8f74c8, 0xec0b40, 0xc01239d170, 0x15, 0x1225e00, 0xc00f893200)
    /usr/local/go/src/text/template/exec.go:262 +0x142
text/template.(*Template).execute(0xc01020d840, 0x1213640, 0xc0117f27e0, 0xec0b40, 0xc01239d170, 0x0, 0x0)
    /usr/local/go/src/text/template/exec.go:217 +0x215
text/template.(*Template).Execute(0xc01020d840, 0x1213640, 0xc0117f27e0, 0xec0b40, 0xc01239d170, 0xc00fb08420, 0xc00fb08430)
    /usr/local/go/src/text/template/exec.go:200 +0x53
html/template.(*Template).Execute(0xc00f892ed0, 0x1213640, 0xc0117f27e0, 0xec0b40, 0xc01239d170, 0xc012440001, 0x0)
    /usr/local/go/src/html/template/template.go:122 +0x8c
github.com/xyproto/algernon/engine.(*Config).AmberPage(0xc00057c000, 0x1221140, 0xc011dc6180, 0xc011dce200, 0xc0120e2ba0, 0x23, 0xc01244c370, 0xb0, 0xb0, 0xc01239d170)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/rendering.go:635 +0x467
github.com/xyproto/algernon/engine.(*Config).FilePage(0xc00057c000, 0x1221140, 0xc011dc6180, 0xc011dce200, 0xc0120e2ba0, 0x23, 0xfdae88, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:223 +0x14c6
github.com/xyproto/algernon/engine.(*Config).DirPage(0xc00057c000, 0x1221140, 0xc011dc6180, 0xc011dce200, 0x7ffe0ceb862e, 0xf, 0xc0120d0160, 0x18, 0xfd69eb, 0x7)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/dirhandler.go:139 +0x2b8
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc0120da0e0, 0xc011dce200)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:484 +0x49e
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc0120da0e0, 0xc011dce200)
    /usr/local/go/src/net/http/server.go:1964 +0x44
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc0120da0e0, 0xc011dce200)
    /usr/local/go/src/net/http/server.go:2361 +0x127
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc0120da0e0, 0xc011dce200)
    /usr/local/go/src/net/http/server.go:2741 +0xab
net/http.(*conn).serve(0xc00f7766e0, 0x12230c0, 0xc007ff9380)
    /usr/local/go/src/net/http/server.go:1847 +0x646
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 216 [IO wait]:
internal/poll.runtime_pollWait(0x7f4e1d221060, 0x72, 0xc00a393e58)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc010e1ff98, 0x72, 0xffffffffffffff00, 0x1216940, 0x19dc968)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc010e1ff98, 0xc0110e0600, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc010e1ff80, 0xc0110e0671, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc010e1ff80, 0xc0110e0671, 0x1, 0x1, 0x4, 0x7, 0x113)
    /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc010ab0610, 0xc0110e0671, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:177 +0x68
net/http.(*connReader).backgroundRead(0xc0110e0660)
    /usr/local/go/src/net/http/server.go:676 +0x5a
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2

goroutine 202 [semacquire]:
sync.runtime_SemacquireMutex(0xc00b4a0cbc, 0x1225100)
    /usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc00b4a0cb8)
    /usr/local/go/src/sync/mutex.go:134 +0xff
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).beginRWTx(0xc00b4a0b40, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:512 +0x5e
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Begin(0xc00b4a0b40, 0xf04301, 0xf1de80, 0x1227600, 0xc00f8f20a0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:461 +0x38
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Update(0xc00b4a0b40, 0xc00f8f1fa8, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:579 +0x3c
github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt.(*KeyValue).Inc(0xc0117eede0, 0xc011557b73, 0x7, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt/simplebolt.go:653 +0xab
github.com/xyproto/algernon/lua/datastruct.kvInc(0xc01178e0a0, 0x2)
    /home/ubuntu/go/src/github.com/xyproto/algernon/lua/datastruct/keyvalue.go:77 +0x8b
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.callGFunction(0xc01178e0a0, 0x1, 0xc0117c6700)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:136 +0x40
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.init.3.func27(0xc01178e0a0, 0x80000003, 0xc0116cd000, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:778 +0xf44
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.mainLoop(0xc01178e0a0, 0xc0116cd000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:31 +0xda
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).callR(0xc01178e0a0, 0x0, 0xffffffffffffffff, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:876 +0x247
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).Call(0xc01178e0a0, 0x0, 0xffffffffffffffff)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1613 +0x48
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).PCall(0xc01178e0a0, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1676 +0xda
github.com/xyproto/algernon/engine.(*Config).LuaFunctionMap.func1.1(0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/lua.go:303 +0x299
reflect.Value.call(0xe996c0, 0xc00fb39d60, 0x13, 0xfcbef4, 0x4, 0x1c1f5f8, 0x1, 0x0, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xe996c0, 0xc00fb39d60, 0x13, 0x1c1f5f8, 0x0, 0x0, 0x98, 0x7f4e1d25e440, 0x124e640)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.call(0xea2f60, 0xc00ba37a20, 0x94, 0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /usr/local/go/src/text/template/funcs.go:278 +0x3c0
reflect.Value.call(0xeba5c0, 0x1093fe8, 0x13, 0xfcbef4, 0x4, 0xc01175ce00, 0x2, 0x1, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xeba5c0, 0x1093fe8, 0x13, 0xc01175ce00, 0x1, 0x1, 0x1225d40, 0xc01173baa0, 0xfc6000)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.(*state).evalCall(0xc00f8f34c8, 0xec0b40, 0xc0116d58c0, 0x15, 0xeba5c0, 0x1093fe8, 0x13, 0x1225cc0, 0xc01173ba40, 0xc00a57362b, ...)
    /usr/local/go/src/text/template/exec.go:695 +0x6bd
text/template.(*state).evalFunction(0xc00f8f34c8, 0xec0b40, 0xc0116d58c0, 0x15, 0xc01173ba70, 0x1225cc0, 0xc01173ba40, 0xc01175cce0, 0x2, 0x2, ...)
    /usr/local/go/src/text/template/exec.go:563 +0x172
text/template.(*state).evalCommand(0xc00f8f34c8, 0xec0b40, 0xc0116d58c0, 0x15, 0xc01173ba40, 0xec12c0, 0x1c1f5f8, 0x99, 0xc00f8f3318, 0x951ca7, ...)
    /usr/local/go/src/text/template/exec.go:460 +0x5e9
text/template.(*state).evalPipeline(0xc00f8f34c8, 0xec0b40, 0xc0116d58c0, 0x15, 0xc011768ae0, 0x0, 0x0, 0x98)
    /usr/local/go/src/text/template/exec.go:429 +0x126
text/template.(*state).walk(0xc00f8f34c8, 0xec0b40, 0xc0116d58c0, 0x15, 0x1225bc0, 0xc01173bad0)
    /usr/local/go/src/text/template/exec.go:254 +0x49b
text/template.(*state).walk(0xc00f8f34c8, 0xec0b40, 0xc0116d58c0, 0x15, 0x1225e00, 0xc01173b830)
    /usr/local/go/src/text/template/exec.go:262 +0x142
text/template.(*Template).execute(0xc011725b40, 0x1213640, 0xc011739ab0, 0xec0b40, 0xc0116d58c0, 0x0, 0x0)
    /usr/local/go/src/text/template/exec.go:217 +0x215
text/template.(*Template).Execute(0xc011725b40, 0x1213640, 0xc011739ab0, 0xec0b40, 0xc0116d58c0, 0xc011768060, 0xc011768070)
    /usr/local/go/src/text/template/exec.go:200 +0x53
html/template.(*Template).Execute(0xc01173b500, 0x1213640, 0xc011739ab0, 0xec0b40, 0xc0116d58c0, 0xc00a450001, 0x0)
    /usr/local/go/src/html/template/template.go:122 +0x8c
github.com/xyproto/algernon/engine.(*Config).AmberPage(0xc00057c000, 0x1221140, 0xc0117046a0, 0xc01170ec00, 0xc01145d4a0, 0x23, 0xc00a4573f0, 0xb0, 0xb0, 0xc0116d58c0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/rendering.go:635 +0x467
github.com/xyproto/algernon/engine.(*Config).FilePage(0xc00057c000, 0x1221140, 0xc0117046a0, 0xc01170ec00, 0xc01145d4a0, 0x23, 0xfdae88, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:223 +0x14c6
github.com/xyproto/algernon/engine.(*Config).DirPage(0xc00057c000, 0x1221140, 0xc0117046a0, 0xc01170ec00, 0x7ffe0ceb862e, 0xf, 0xc00f94b360, 0x18, 0xfd69eb, 0x7)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/dirhandler.go:139 +0x2b8
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc00f6656c0, 0xc01170ec00)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:484 +0x49e
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc00f6656c0, 0xc01170ec00)
    /usr/local/go/src/net/http/server.go:1964 +0x44
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc00f6656c0, 0xc01170ec00)
    /usr/local/go/src/net/http/server.go:2361 +0x127
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc00f6656c0, 0xc01170ec00)
    /usr/local/go/src/net/http/server.go:2741 +0xab
net/http.(*conn).serve(0xc00f7774a0, 0x12230c0, 0xc0052c7680)
    /usr/local/go/src/net/http/server.go:1847 +0x646
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 310 [runnable]:
sync.runtime_SemacquireMutex(0xc00b4a0cbc, 0x1225100)
    /usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc00b4a0cb8)
    /usr/local/go/src/sync/mutex.go:134 +0xff
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).beginRWTx(0xc00b4a0b40, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:512 +0x5e
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Begin(0xc00b4a0b40, 0xf04301, 0xf1de80, 0x1227600, 0xc0114de0a0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:461 +0x38
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Update(0xc00b4a0b40, 0xc0114ddfa8, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:579 +0x3c
github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt.(*KeyValue).Inc(0xc011dea020, 0xc010261653, 0x7, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt/simplebolt.go:653 +0xab
github.com/xyproto/algernon/lua/datastruct.kvInc(0xc00fab5400, 0x2)
    /home/ubuntu/go/src/github.com/xyproto/algernon/lua/datastruct/keyvalue.go:77 +0x8b
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.callGFunction(0xc00fab5400, 0x1, 0xc011523440)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:136 +0x40
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.init.3.func27(0xc00fab5400, 0x80000003, 0xc010281000, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:778 +0xf44
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.mainLoop(0xc00fab5400, 0xc010281000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:31 +0xda
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).callR(0xc00fab5400, 0x0, 0xffffffffffffffff, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:876 +0x247
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).Call(0xc00fab5400, 0x0, 0xffffffffffffffff)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1613 +0x48
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).PCall(0xc00fab5400, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1676 +0xda
github.com/xyproto/algernon/engine.(*Config).LuaFunctionMap.func1.1(0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/lua.go:303 +0x299
reflect.Value.call(0xe996c0, 0xc00fb39270, 0x13, 0xfcbef4, 0x4, 0x1c1f5f8, 0x1, 0x0, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xe996c0, 0xc00fb39270, 0x13, 0x1c1f5f8, 0x0, 0x0, 0x98, 0x7f4e1d25e440, 0x124e640)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.call(0xea2f60, 0xc0081ec2e0, 0x94, 0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /usr/local/go/src/text/template/funcs.go:278 +0x3c0
reflect.Value.call(0xeba5c0, 0x1093fe8, 0x13, 0xfcbef4, 0x4, 0xc0114e06c0, 0x2, 0x1, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xeba5c0, 0x1093fe8, 0x13, 0xc0114e06c0, 0x1, 0x1, 0x1225d40, 0xc0114c5620, 0xfc6000)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.(*state).evalCall(0xc0114df4c8, 0xec0b40, 0xc0102fd440, 0x15, 0xeba5c0, 0x1093fe8, 0x13, 0x1225cc0, 0xc0114c55c0, 0xc00a5731ab, ...)
    /usr/local/go/src/text/template/exec.go:695 +0x6bd
text/template.(*state).evalFunction(0xc0114df4c8, 0xec0b40, 0xc0102fd440, 0x15, 0xc0114c55f0, 0x1225cc0, 0xc0114c55c0, 0xc0114e05a0, 0x2, 0x2, ...)
    /usr/local/go/src/text/template/exec.go:563 +0x172
text/template.(*state).evalCommand(0xc0114df4c8, 0xec0b40, 0xc0102fd440, 0x15, 0xc0114c55c0, 0xec12c0, 0x1c1f5f8, 0x99, 0xc0114df318, 0x951ca7, ...)
    /usr/local/go/src/text/template/exec.go:460 +0x5e9
text/template.(*state).evalPipeline(0xc0114df4c8, 0xec0b40, 0xc0102fd440, 0x15, 0xc0114e26c0, 0x0, 0x0, 0x98)
    /usr/local/go/src/text/template/exec.go:429 +0x126
text/template.(*state).walk(0xc0114df4c8, 0xec0b40, 0xc0102fd440, 0x15, 0x1225bc0, 0xc0114c5650)
    /usr/local/go/src/text/template/exec.go:254 +0x49b
text/template.(*state).walk(0xc0114df4c8, 0xec0b40, 0xc0102fd440, 0x15, 0x1225e00, 0xc0114c53b0)
    /usr/local/go/src/text/template/exec.go:262 +0x142
text/template.(*Template).execute(0xc0114ae7c0, 0x1213640, 0xc0114c0700, 0xec0b40, 0xc0102fd440, 0x0, 0x0)
    /usr/local/go/src/text/template/exec.go:217 +0x215
text/template.(*Template).Execute(0xc0114ae7c0, 0x1213640, 0xc0114c0700, 0xec0b40, 0xc0102fd440, 0xc0102b5c20, 0xc0102b5c30)
    /usr/local/go/src/text/template/exec.go:200 +0x53
html/template.(*Template).Execute(0xc0114c5080, 0x1213640, 0xc0114c0700, 0xec0b40, 0xc0102fd440, 0xc00a450001, 0x0)
    /usr/local/go/src/html/template/template.go:122 +0x8c
github.com/xyproto/algernon/engine.(*Config).AmberPage(0xc00057c000, 0x1221140, 0xc005643ea0, 0xc010f20400, 0xc01145c180, 0x23, 0xc00a456fd0, 0xb0, 0xb0, 0xc0102fd440)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/rendering.go:635 +0x467
github.com/xyproto/algernon/engine.(*Config).FilePage(0xc00057c000, 0x1221140, 0xc005643ea0, 0xc010f20400, 0xc01145c180, 0x23, 0xfdae88, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:223 +0x14c6
github.com/xyproto/algernon/engine.(*Config).DirPage(0xc00057c000, 0x1221140, 0xc005643ea0, 0xc010f20400, 0x7ffe0ceb862e, 0xf, 0xc00f94ace0, 0x18, 0xfd69eb, 0x7)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/dirhandler.go:139 +0x2b8
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc00f665340, 0xc010f20400)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:484 +0x49e
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc00f665340, 0xc010f20400)
    /usr/local/go/src/net/http/server.go:1964 +0x44
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc00f665340, 0xc010f20400)
    /usr/local/go/src/net/http/server.go:2361 +0x127
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc00f665340, 0xc010f20400)
    /usr/local/go/src/net/http/server.go:2741 +0xab
net/http.(*conn).serve(0xc00fef75e0, 0x12230c0, 0xc010f06ac0)
    /usr/local/go/src/net/http/server.go:1847 +0x646
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 253 [semacquire]:
sync.runtime_SemacquireMutex(0xc00b4a0cbc, 0x1225100)
    /usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc00b4a0cb8)
    /usr/local/go/src/sync/mutex.go:134 +0xff
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).beginRWTx(0xc00b4a0b40, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:512 +0x5e
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Begin(0xc00b4a0b40, 0xf04301, 0xf1de80, 0x1227600, 0xc0106bc0a0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:461 +0x38
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Update(0xc00b4a0b40, 0xc0106bbfa8, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:579 +0x3c
github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt.(*KeyValue).Inc(0xc011f9e9e0, 0xc0115568e3, 0x7, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt/simplebolt.go:653 +0xab
github.com/xyproto/algernon/lua/datastruct.kvInc(0xc00fab5a40, 0x2)
    /home/ubuntu/go/src/github.com/xyproto/algernon/lua/datastruct/keyvalue.go:77 +0x8b
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.callGFunction(0xc00fab5a40, 0x1, 0xc0116e2d80)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:136 +0x40
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.init.3.func27(0xc00fab5a40, 0x80000003, 0xc0116c8000, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:778 +0xf44
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.mainLoop(0xc00fab5a40, 0xc0116c8000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:31 +0xda
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).callR(0xc00fab5a40, 0x0, 0xffffffffffffffff, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:876 +0x247
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).Call(0xc00fab5a40, 0x0, 0xffffffffffffffff)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1613 +0x48
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).PCall(0xc00fab5a40, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1676 +0xda
github.com/xyproto/algernon/engine.(*Config).LuaFunctionMap.func1.1(0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/lua.go:303 +0x299
reflect.Value.call(0xe996c0, 0xc00fb39810, 0x13, 0xfcbef4, 0x4, 0x1c1f5f8, 0x1, 0x0, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xe996c0, 0xc00fb39810, 0x13, 0x1c1f5f8, 0x0, 0x0, 0x98, 0x7f4e1d25e440, 0x124e640)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.call(0xea2f60, 0xc008daeaf0, 0x94, 0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /usr/local/go/src/text/template/funcs.go:278 +0x3c0
reflect.Value.call(0xeba5c0, 0x1093fe8, 0x13, 0xfcbef4, 0x4, 0xc011692a60, 0x2, 0x1, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xeba5c0, 0x1093fe8, 0x13, 0xc011692a60, 0x1, 0x1, 0x1225d40, 0xc011671860, 0xfc6000)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.(*state).evalCall(0xc0106bd4c8, 0xec0b40, 0xc011517680, 0x15, 0xeba5c0, 0x1093fe8, 0x13, 0x1225cc0, 0xc011671800, 0xc00a5733eb, ...)
    /usr/local/go/src/text/template/exec.go:695 +0x6bd
text/template.(*state).evalFunction(0xc0106bd4c8, 0xec0b40, 0xc011517680, 0x15, 0xc011671830, 0x1225cc0, 0xc011671800, 0xc011692940, 0x2, 0x2, ...)
    /usr/local/go/src/text/template/exec.go:563 +0x172
text/template.(*state).evalCommand(0xc0106bd4c8, 0xec0b40, 0xc011517680, 0x15, 0xc011671800, 0xec12c0, 0x1c1f5f8, 0x99, 0xc0106bd318, 0x951ca7, ...)
    /usr/local/go/src/text/template/exec.go:460 +0x5e9
text/template.(*state).evalPipeline(0xc0106bd4c8, 0xec0b40, 0xc011517680, 0x15, 0xc0116558c0, 0x0, 0x0, 0x98)
    /usr/local/go/src/text/template/exec.go:429 +0x126
text/template.(*state).walk(0xc0106bd4c8, 0xec0b40, 0xc011517680, 0x15, 0x1225bc0, 0xc011671890)
    /usr/local/go/src/text/template/exec.go:254 +0x49b
text/template.(*state).walk(0xc0106bd4c8, 0xec0b40, 0xc011517680, 0x15, 0x1225e00, 0xc0116715f0)
    /usr/local/go/src/text/template/exec.go:262 +0x142
text/template.(*Template).execute(0xc0116a6180, 0x1213640, 0xc0116840e0, 0xec0b40, 0xc011517680, 0x0, 0x0)
    /usr/local/go/src/text/template/exec.go:217 +0x215
text/template.(*Template).Execute(0xc0116a6180, 0x1213640, 0xc0116840e0, 0xec0b40, 0xc011517680, 0xc011654e40, 0xc011654e50)
    /usr/local/go/src/text/template/exec.go:200 +0x53
html/template.(*Template).Execute(0xc0116712c0, 0x1213640, 0xc0116840e0, 0xec0b40, 0xc011517680, 0xc00a450001, 0x0)
    /usr/local/go/src/html/template/template.go:122 +0x8c
github.com/xyproto/algernon/engine.(*Config).AmberPage(0xc00057c000, 0x1221140, 0xc011550300, 0xc011548f00, 0xc01145cb10, 0x23, 0xc00a4571e0, 0xb0, 0xb0, 0xc011517680)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/rendering.go:635 +0x467
github.com/xyproto/algernon/engine.(*Config).FilePage(0xc00057c000, 0x1221140, 0xc011550300, 0xc011548f00, 0xc01145cb10, 0x23, 0xfdae88, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:223 +0x14c6
github.com/xyproto/algernon/engine.(*Config).DirPage(0xc00057c000, 0x1221140, 0xc011550300, 0xc011548f00, 0x7ffe0ceb862e, 0xf, 0xc00f94b020, 0x18, 0xfd69eb, 0x7)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/dirhandler.go:139 +0x2b8
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc00f665500, 0xc011548f00)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:484 +0x49e
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc00f665500, 0xc011548f00)
    /usr/local/go/src/net/http/server.go:1964 +0x44
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc00f665500, 0xc011548f00)
    /usr/local/go/src/net/http/server.go:2361 +0x127
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc00f665500, 0xc011548f00)
    /usr/local/go/src/net/http/server.go:2741 +0xab
net/http.(*conn).serve(0xc00f4ddae0, 0x12230c0, 0xc01061dac0)
    /usr/local/go/src/net/http/server.go:1847 +0x646
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 342 [IO wait]:
internal/poll.runtime_pollWait(0x7f4e1d221a20, 0x72, 0xc00ec50e58)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc008ca2198, 0x72, 0xffffffffffffff00, 0x1216940, 0x19dc968)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc008ca2198, 0xc00a342700, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc008ca2180, 0xc00a342761, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc008ca2180, 0xc00a342761, 0x1, 0x1, 0xc01061db58, 0xc00ec50f68, 0x473315)
    /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0001f31e0, 0xc00a342761, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:177 +0x68
net/http.(*connReader).backgroundRead(0xc00a342750)
    /usr/local/go/src/net/http/server.go:676 +0x5a
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2

goroutine 354 [IO wait]:
internal/poll.runtime_pollWait(0x7f4e1d221610, 0x72, 0xc00ec52658)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc00fc17998, 0x72, 0xffffffffffffff00, 0x1216940, 0x19dc968)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc00fc17998, 0xc00fca4b00, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc00fc17980, 0xc00fca4b21, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc00fc17980, 0xc00fca4b21, 0x1, 0x1, 0xc01168a100, 0xc011684410, 0x36)
    /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc00de33748, 0xc00fca4b21, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:177 +0x68
net/http.(*connReader).backgroundRead(0xc00fca4b10)
    /usr/local/go/src/net/http/server.go:676 +0x5a
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2

goroutine 109 [IO wait]:
internal/poll.runtime_pollWait(0x7f4e1d2217b0, 0x72, 0xc00ec53e58)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc00f567898, 0x72, 0xffffffffffffff00, 0x1216940, 0x19dc968)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc00f567898, 0xc00f5d8f00, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc00f567880, 0xc00f5d8f71, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc00f567880, 0xc00f5d8f71, 0x1, 0x1, 0xc00361ad98, 0xc00ec53f68, 0x473315)
    /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc001137788, 0xc00f5d8f71, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:177 +0x68
net/http.(*connReader).backgroundRead(0xc00f5d8f60)
    /usr/local/go/src/net/http/server.go:676 +0x5a
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2

goroutine 294 [semacquire]:
sync.runtime_SemacquireMutex(0xc00b4a0cbc, 0x1225100)
    /usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc00b4a0cb8)
    /usr/local/go/src/sync/mutex.go:134 +0xff
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).beginRWTx(0xc00b4a0b40, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:512 +0x5e
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Begin(0xc00b4a0b40, 0xf04301, 0xf1de80, 0x1227600, 0xc0106b80a0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:461 +0x38
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Update(0xc00b4a0b40, 0xc0106b7fa8, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:579 +0x3c
github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt.(*KeyValue).Inc(0xc0117ef7a0, 0xc011ab26d3, 0x7, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt/simplebolt.go:653 +0xab
github.com/xyproto/algernon/lua/datastruct.kvInc(0xc0110899a0, 0x2)
    /home/ubuntu/go/src/github.com/xyproto/algernon/lua/datastruct/keyvalue.go:77 +0x8b
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.callGFunction(0xc0110899a0, 0x1, 0xc011b5b880)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:136 +0x40
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.init.3.func27(0xc0110899a0, 0x80000003, 0xc011981000, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:778 +0xf44
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.mainLoop(0xc0110899a0, 0xc011981000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:31 +0xda
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).callR(0xc0110899a0, 0x0, 0xffffffffffffffff, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:876 +0x247
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).Call(0xc0110899a0, 0x0, 0xffffffffffffffff)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1613 +0x48
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).PCall(0xc0110899a0, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1676 +0xda
github.com/xyproto/algernon/engine.(*Config).LuaFunctionMap.func1.1(0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/lua.go:303 +0x299
reflect.Value.call(0xe996c0, 0xc01112f090, 0x13, 0xfcbef4, 0x4, 0x1c1f5f8, 0x1, 0x0, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xe996c0, 0xc01112f090, 0x13, 0x1c1f5f8, 0x0, 0x0, 0x9490a5, 0x948e63, 0x96845c)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.call(0xea2f60, 0xc00a687230, 0x94, 0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /usr/local/go/src/text/template/funcs.go:278 +0x3c0
reflect.Value.call(0xeba5c0, 0x1093fe8, 0x13, 0xfcbef4, 0x4, 0xc011b0a820, 0x2, 0x1, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xeba5c0, 0x1093fe8, 0x13, 0xc011b0a820, 0x1, 0x1, 0x1225d40, 0xc011b209f0, 0xfc6000)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.(*state).evalCall(0xc0106b94c8, 0xec0b40, 0xc011a1a810, 0x15, 0xeba5c0, 0x1093fe8, 0x13, 0x1225cc0, 0xc011b20990, 0xc010343f2b, ...)
    /usr/local/go/src/text/template/exec.go:695 +0x6bd
text/template.(*state).evalFunction(0xc0106b94c8, 0xec0b40, 0xc011a1a810, 0x15, 0xc011b209c0, 0x1225cc0, 0xc011b20990, 0xc011b0a700, 0x2, 0x2, ...)
    /usr/local/go/src/text/template/exec.go:563 +0x172
text/template.(*state).evalCommand(0xc0106b94c8, 0xec0b40, 0xc011a1a810, 0x15, 0xc011b20990, 0xec12c0, 0x1c1f5f8, 0x99, 0xc0106b9318, 0x951ca7, ...)
    /usr/local/go/src/text/template/exec.go:460 +0x5e9
text/template.(*state).evalPipeline(0xc0106b94c8, 0xec0b40, 0xc011a1a810, 0x15, 0xc011b22540, 0x0, 0x0, 0x98)
    /usr/local/go/src/text/template/exec.go:429 +0x126
text/template.(*state).walk(0xc0106b94c8, 0xec0b40, 0xc011a1a810, 0x15, 0x1225bc0, 0xc011b20a20)
    /usr/local/go/src/text/template/exec.go:254 +0x49b
text/template.(*state).walk(0xc0106b94c8, 0xec0b40, 0xc011a1a810, 0x15, 0x1225e00, 0xc011b20780)
    /usr/local/go/src/text/template/exec.go:262 +0x142
text/template.(*Template).execute(0xc011ac0d40, 0x1213640, 0xc011abd2d0, 0xec0b40, 0xc011a1a810, 0x0, 0x0)
    /usr/local/go/src/text/template/exec.go:217 +0x215
text/template.(*Template).Execute(0xc011ac0d40, 0x1213640, 0xc011abd2d0, 0xec0b40, 0xc011a1a810, 0xc011a15aa0, 0xc011a15ab0)
    /usr/local/go/src/text/template/exec.go:200 +0x53
html/template.(*Template).Execute(0xc011b20450, 0x1213640, 0xc011abd2d0, 0xec0b40, 0xc011a1a810, 0xc00eb10001, 0x0)
    /usr/local/go/src/html/template/template.go:122 +0x8c
github.com/xyproto/algernon/engine.(*Config).AmberPage(0xc00057c000, 0x1221140, 0xc011a480c0, 0xc0119a1a00, 0xc0118eeb40, 0x23, 0xc00eb1dce0, 0xb0, 0xb0, 0xc011a1a810)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/rendering.go:635 +0x467
github.com/xyproto/algernon/engine.(*Config).FilePage(0xc00057c000, 0x1221140, 0xc011a480c0, 0xc0119a1a00, 0xc0118eeb40, 0x23, 0xfdae88, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:223 +0x14c6
github.com/xyproto/algernon/engine.(*Config).DirPage(0xc00057c000, 0x1221140, 0xc011a480c0, 0xc0119a1a00, 0x7ffe0ceb862e, 0xf, 0xc011920240, 0x18, 0xfd69eb, 0x7)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/dirhandler.go:139 +0x2b8
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc00eb6fea0, 0xc0119a1a00)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:484 +0x49e
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc00eb6fea0, 0xc0119a1a00)
    /usr/local/go/src/net/http/server.go:1964 +0x44
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc00eb6fea0, 0xc0119a1a00)
    /usr/local/go/src/net/http/server.go:2361 +0x127
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc00eb6fea0, 0xc0119a1a00)
    /usr/local/go/src/net/http/server.go:2741 +0xab
net/http.(*conn).serve(0xc01097c6e0, 0x12230c0, 0xc010a739c0)
    /usr/local/go/src/net/http/server.go:1847 +0x646
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 349 [IO wait]:
internal/poll.runtime_pollWait(0x7f4e1d221880, 0x72, 0xc0106a6658)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc00eef7418, 0x72, 0xffffffffffffff00, 0x1216940, 0x19dc968)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc00eef7418, 0xc00ef55400, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc00eef7400, 0xc00ef554b1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc00eef7400, 0xc00ef554b1, 0x1, 0x1, 0x4, 0x7, 0x113)
    /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc001215b78, 0xc00ef554b1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:177 +0x68
net/http.(*connReader).backgroundRead(0xc00ef554a0)
    /usr/local/go/src/net/http/server.go:676 +0x5a
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2

goroutine 336 [IO wait]:
internal/poll.runtime_pollWait(0x7f4e1d221af0, 0x72, 0xc0106a9658)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc0081b0318, 0x72, 0xffffffffffffff00, 0x1216940, 0x19dc968)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc0081b0318, 0xc00eb02400, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc0081b0300, 0xc00eb02431, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc0081b0300, 0xc00eb02431, 0x1, 0x1, 0xc011100780, 0xc011122870, 0x36)
    /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc00000ef90, 0xc00eb02431, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:177 +0x68
net/http.(*connReader).backgroundRead(0xc00eb02420)
    /usr/local/go/src/net/http/server.go:676 +0x5a
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2

goroutine 373 [semacquire]:
sync.runtime_SemacquireMutex(0xc00b4a0cbc, 0x1225100)
    /usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc00b4a0cb8)
    /usr/local/go/src/sync/mutex.go:134 +0xff
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).beginRWTx(0xc00b4a0b40, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:512 +0x5e
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Begin(0xc00b4a0b40, 0xf04301, 0xf1de80, 0x1227600, 0xc0114da0a0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:461 +0x38
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Update(0xc00b4a0b40, 0xc0114d9fa8, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:579 +0x3c
github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt.(*KeyValue).Inc(0xc0117ef3e0, 0xc011839443, 0x7, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt/simplebolt.go:653 +0xab
github.com/xyproto/algernon/lua/datastruct.kvInc(0xc011089360, 0x2)
    /home/ubuntu/go/src/github.com/xyproto/algernon/lua/datastruct/keyvalue.go:77 +0x8b
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.callGFunction(0xc011089360, 0x1, 0xc0119a5f80)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:136 +0x40
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.init.3.func27(0xc011089360, 0x80000003, 0xc01197c000, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:778 +0xf44
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.mainLoop(0xc011089360, 0xc01197c000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:31 +0xda
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).callR(0xc011089360, 0x0, 0xffffffffffffffff, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:876 +0x247
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).Call(0xc011089360, 0x0, 0xffffffffffffffff)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1613 +0x48
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).PCall(0xc011089360, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1676 +0xda
github.com/xyproto/algernon/engine.(*Config).LuaFunctionMap.func1.1(0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/lua.go:303 +0x299
reflect.Value.call(0xe996c0, 0xc01112eaf0, 0x13, 0xfcbef4, 0x4, 0x1c1f5f8, 0x1, 0x0, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xe996c0, 0xc01112eaf0, 0x13, 0x1c1f5f8, 0x0, 0x0, 0x98, 0x7f4e1d25eb00, 0x124e640)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.call(0xea2f60, 0xc00bb65330, 0x94, 0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /usr/local/go/src/text/template/funcs.go:278 +0x3c0
reflect.Value.call(0xeba5c0, 0x1093fe8, 0x13, 0xfcbef4, 0x4, 0xc01195e480, 0x2, 0x1, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xeba5c0, 0x1093fe8, 0x13, 0xc01195e480, 0x1, 0x1, 0x1225d40, 0xc0119607b0, 0xfc6000)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.(*state).evalCall(0xc0114db4c8, 0xec0b40, 0xc0118e65d0, 0x15, 0xeba5c0, 0x1093fe8, 0x13, 0x1225cc0, 0xc011960750, 0xc010343ceb, ...)
    /usr/local/go/src/text/template/exec.go:695 +0x6bd
text/template.(*state).evalFunction(0xc0114db4c8, 0xec0b40, 0xc0118e65d0, 0x15, 0xc011960780, 0x1225cc0, 0xc011960750, 0xc01195e360, 0x2, 0x2, ...)
    /usr/local/go/src/text/template/exec.go:563 +0x172
text/template.(*state).evalCommand(0xc0114db4c8, 0xec0b40, 0xc0118e65d0, 0x15, 0xc011960750, 0xec12c0, 0x1c1f5f8, 0x99, 0xc0114db318, 0x951ca7, ...)
    /usr/local/go/src/text/template/exec.go:460 +0x5e9
text/template.(*state).evalPipeline(0xc0114db4c8, 0xec0b40, 0xc0118e65d0, 0x15, 0xc011913260, 0x0, 0x0, 0x98)
    /usr/local/go/src/text/template/exec.go:429 +0x126
text/template.(*state).walk(0xc0114db4c8, 0xec0b40, 0xc0118e65d0, 0x15, 0x1225bc0, 0xc0119607e0)
    /usr/local/go/src/text/template/exec.go:254 +0x49b
text/template.(*state).walk(0xc0114db4c8, 0xec0b40, 0xc0118e65d0, 0x15, 0x1225e00, 0xc011960540)
    /usr/local/go/src/text/template/exec.go:262 +0x142
text/template.(*Template).execute(0xc0118f5280, 0x1213640, 0xc0119098f0, 0xec0b40, 0xc0118e65d0, 0x0, 0x0)
    /usr/local/go/src/text/template/exec.go:217 +0x215
text/template.(*Template).Execute(0xc0118f5280, 0x1213640, 0xc0119098f0, 0xec0b40, 0xc0118e65d0, 0xc0119127e0, 0xc0119127f0)
    /usr/local/go/src/text/template/exec.go:200 +0x53
html/template.(*Template).Execute(0xc011960210, 0x1213640, 0xc0119098f0, 0xec0b40, 0xc0118e65d0, 0xc00eb10001, 0x0)
    /usr/local/go/src/html/template/template.go:122 +0x8c
github.com/xyproto/algernon/engine.(*Config).AmberPage(0xc00057c000, 0x1221140, 0xc01188fd20, 0xc0118add00, 0xc0118ee1b0, 0x23, 0xc00eb1dad0, 0xb0, 0xb0, 0xc0118e65d0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/rendering.go:635 +0x467
github.com/xyproto/algernon/engine.(*Config).FilePage(0xc00057c000, 0x1221140, 0xc01188fd20, 0xc0118add00, 0xc0118ee1b0, 0x23, 0xfdae88, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:223 +0x14c6
github.com/xyproto/algernon/engine.(*Config).DirPage(0xc00057c000, 0x1221140, 0xc01188fd20, 0xc0118add00, 0x7ffe0ceb862e, 0xf, 0xc010795f00, 0x18, 0xfd69eb, 0x7)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/dirhandler.go:139 +0x2b8
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc00eb6fce0, 0xc0118add00)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:484 +0x49e
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc00eb6fce0, 0xc0118add00)
    /usr/local/go/src/net/http/server.go:1964 +0x44
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc00eb6fce0, 0xc0118add00)
    /usr/local/go/src/net/http/server.go:2361 +0x127
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc00eb6fce0, 0xc0118add00)
    /usr/local/go/src/net/http/server.go:2741 +0xab
net/http.(*conn).serve(0xc011088d20, 0x12230c0, 0xc0118bb900)
    /usr/local/go/src/net/http/server.go:1847 +0x646
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 374 [IO wait]:
internal/poll.runtime_pollWait(0x7f4de01fdf80, 0x72, 0xc011866658)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc01184b398, 0x72, 0xffffffffffffff00, 0x1216940, 0x19dc968)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc01184b398, 0xc0118e6200, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc01184b380, 0xc0118e62e1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc01184b380, 0xc0118e62e1, 0x1, 0x1, 0xc01184a200, 0xc01185a250, 0x36)
    /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc010863118, 0xc0118e62e1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:177 +0x68
net/http.(*connReader).backgroundRead(0xc0118e62d0)
    /usr/local/go/src/net/http/server.go:676 +0x5a
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2

goroutine 384 [IO wait]:
internal/poll.runtime_pollWait(0x7f4e1d221540, 0x72, 0xc011867e58)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc00f12b418, 0x72, 0xffffffffffffff00, 0x1216940, 0x19dc968)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc00f12b418, 0xc00f6feb00, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc00f12b400, 0xc00f6febe1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc00f12b400, 0xc00f6febe1, 0x1, 0x1, 0xc01198d780, 0xc011abd600, 0x36)
    /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc00000fe20, 0xc00f6febe1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:177 +0x68
net/http.(*connReader).backgroundRead(0xc00f6febd0)
    /usr/local/go/src/net/http/server.go:676 +0x5a
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2

goroutine 347 [IO wait]:
internal/poll.runtime_pollWait(0x7f4e1d221200, 0x72, 0xc0106a4658)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc010e1e418, 0x72, 0xffffffffffffff00, 0x1216940, 0x19dc968)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc010e1e418, 0xc010dd3900, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc010e1e400, 0xc010dd39f1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc010e1e400, 0xc010dd39f1, 0x1, 0x1, 0x4, 0x7, 0x113)
    /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc010ab03e8, 0xc010dd39f1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:177 +0x68
net/http.(*connReader).backgroundRead(0xc010dd39e0)
    /usr/local/go/src/net/http/server.go:676 +0x5a
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2

goroutine 350 [runnable]:
github.com/xyproto/algernon/vendor/github.com/yosssi/gcss.compileBytes(0xc01201a600, 0xbe, 0x600, 0xbe, 0x600)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yosssi/gcss/compile.go:84 +0xc7
github.com/xyproto/algernon/vendor/github.com/yosssi/gcss.Compile(0x1213640, 0xc000b73030, 0x1213620, 0xc000b72fc0, 0x7, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yosssi/gcss/compile.go:31 +0x82
github.com/xyproto/algernon/engine.ValidGCSS(0xc011d3c2c0, 0xbe, 0x2be, 0xc0123ae120)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/rendering.go:33 +0x94
created by github.com/xyproto/algernon/engine.(*Config).AmberPage
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/rendering.go:611 +0xe11

goroutine 418 [semacquire]:
sync.runtime_SemacquireMutex(0xc00b4a0cbc, 0x0)
    /usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc00b4a0cb8)
    /usr/local/go/src/sync/mutex.go:134 +0xff
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).beginRWTx(0xc00b4a0b40, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:512 +0x5e
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Begin(0xc00b4a0b40, 0xc011d20b01, 0xc011e10778, 0x8, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:461 +0x38
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Update(0xc00b4a0b40, 0xc011fa5f10, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:579 +0x3c
github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt.NewKeyValue(0xc00b4a0b40, 0xc011e10778, 0x8, 0x7f4e1d25ff40, 0xc011d9c000, 0x7cf56ac1)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt/simplebolt.go:586 +0xa6
github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt.(*BoltCreator).NewKeyValue(0xc011e4e028, 0xc011e10778, 0x8, 0x10, 0xf1c040, 0xc011fa5fd8, 0x74af39)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt/creator.go:40 +0x42
github.com/xyproto/algernon/lua/datastruct.newKeyValue(0xc011f7c5a0, 0x1223840, 0xc011e4e028, 0xc011e10778, 0x8, 0x4215a8, 0xc00a69d120, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/lua/datastruct/keyvalue.go:28 +0x4f
github.com/xyproto/algernon/lua/datastruct.LoadKeyValue.func1(0xc011f7c5a0, 0xc012130050)
    /home/ubuntu/go/src/github.com/xyproto/algernon/lua/datastruct/keyvalue.go:147 +0xaf
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.callGFunction(0xc011f7c5a0, 0x0, 0xc011fa61d8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:136 +0x40
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.init.3.func26(0xc011f7c5a0, 0x7c000402, 0xc012130000, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:717 +0x394
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.mainLoop(0xc011f7c5a0, 0xc012130000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:31 +0xda
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).callR(0xc011f7c5a0, 0x0, 0xffffffffffffffff, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:876 +0x247
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).Call(0xc011f7c5a0, 0x0, 0xffffffffffffffff)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1613 +0x48
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).PCall(0xc011f7c5a0, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1676 +0xda
github.com/xyproto/algernon/engine.(*Config).LuaFunctionMap.func1.1(0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/lua.go:303 +0x299
reflect.Value.call(0xe996c0, 0xc011e241e0, 0x13, 0xfcbef4, 0x4, 0x1c1f5f8, 0x1, 0x0, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xe996c0, 0xc011e241e0, 0x13, 0x1c1f5f8, 0x0, 0x0, 0x98, 0x7f4e1d271a10, 0x124e640)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.call(0xea2f60, 0xc00a6b2a00, 0x94, 0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /usr/local/go/src/text/template/funcs.go:278 +0x3c0
reflect.Value.call(0xeba5c0, 0x1093fe8, 0x13, 0xfcbef4, 0x4, 0xc011f82760, 0x2, 0x1, 0xfc6000, 0xc000063d70, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xeba5c0, 0x1093fe8, 0x13, 0xc011f82760, 0x1, 0x1, 0x1225d40, 0xc0120024b0, 0xfc6000)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.(*state).evalCall(0xc011fa74c8, 0xec0b40, 0xc011e0a2d0, 0x15, 0xeba5c0, 0x1093fe8, 0x13, 0x1225cc0, 0xc012002450, 0xc01200c1eb, ...)
    /usr/local/go/src/text/template/exec.go:695 +0x6bd
text/template.(*state).evalFunction(0xc011fa74c8, 0xec0b40, 0xc011e0a2d0, 0x15, 0xc012002480, 0x1225cc0, 0xc012002450, 0xc011f82640, 0x2, 0x2, ...)
    /usr/local/go/src/text/template/exec.go:563 +0x172
text/template.(*state).evalCommand(0xc011fa74c8, 0xec0b40, 0xc011e0a2d0, 0x15, 0xc012002450, 0xec12c0, 0x1c1f5f8, 0x99, 0xc011fa7318, 0x951ca7, ...)
    /usr/local/go/src/text/template/exec.go:460 +0x5e9
text/template.(*state).evalPipeline(0xc011fa74c8, 0xec0b40, 0xc011e0a2d0, 0x15, 0xc011e33c80, 0x0, 0x0, 0x98)
    /usr/local/go/src/text/template/exec.go:429 +0x126
text/template.(*state).walk(0xc011fa74c8, 0xec0b40, 0xc011e0a2d0, 0x15, 0x1225bc0, 0xc0120024e0)
    /usr/local/go/src/text/template/exec.go:254 +0x49b
text/template.(*state).walk(0xc011fa74c8, 0xec0b40, 0xc011e0a2d0, 0x15, 0x1225e00, 0xc012002240)
    /usr/local/go/src/text/template/exec.go:262 +0x142
text/template.(*Template).execute(0xc011e63940, 0x1213640, 0xc011f029a0, 0xec0b40, 0xc011e0a2d0, 0x0, 0x0)
    /usr/local/go/src/text/template/exec.go:217 +0x215
text/template.(*Template).Execute(0xc011e63940, 0x1213640, 0xc011f029a0, 0xec0b40, 0xc011e0a2d0, 0xc011e33200, 0xc011e33210)
    /usr/local/go/src/text/template/exec.go:200 +0x53
html/template.(*Template).Execute(0xc011e0bef0, 0x1213640, 0xc011f029a0, 0xec0b40, 0xc011e0a2d0, 0xc011f50001, 0x0)
    /usr/local/go/src/html/template/template.go:122 +0x8c
github.com/xyproto/algernon/engine.(*Config).AmberPage(0xc00057c000, 0x1221140, 0xc011e2c000, 0xc011dce000, 0xc011e30570, 0x23, 0xc011f5c160, 0xb0, 0xb0, 0xc011e0a2d0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/rendering.go:635 +0x467
github.com/xyproto/algernon/engine.(*Config).FilePage(0xc00057c000, 0x1221140, 0xc011e2c000, 0xc011dce000, 0xc011e30570, 0x23, 0xfdae88, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:223 +0x14c6
github.com/xyproto/algernon/engine.(*Config).DirPage(0xc00057c000, 0x1221140, 0xc011e2c000, 0xc011dce000, 0x7ffe0ceb862e, 0xf, 0xc011e06060, 0x18, 0xfd69eb, 0x7)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/dirhandler.go:139 +0x2b8
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc011e1c000, 0xc011dce000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:484 +0x49e
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc011e1c000, 0xc011dce000)
    /usr/local/go/src/net/http/server.go:1964 +0x44
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc011e1c000, 0xc011dce000)
    /usr/local/go/src/net/http/server.go:2361 +0x127
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc011e1c000, 0xc011dce000)
    /usr/local/go/src/net/http/server.go:2741 +0xab
net/http.(*conn).serve(0xc011d98000, 0x12230c0, 0xc011db8040)
    /usr/local/go/src/net/http/server.go:1847 +0x646
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 435 [IO wait]:
internal/poll.runtime_pollWait(0x7f4de01fdeb0, 0x72, 0xc011da0e58)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc011d8e018, 0x72, 0xffffffffffffff00, 0x1216940, 0x19dc968)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc011d8e018, 0xc011d90000, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc011d8e000, 0xc011d900d1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc011d8e000, 0xc011d900d1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc011d94000, 0xc011d900d1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:177 +0x68
net/http.(*connReader).backgroundRead(0xc011d900c0)
    /usr/local/go/src/net/http/server.go:676 +0x5a
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2

goroutine 450 [semacquire]:
sync.runtime_SemacquireMutex(0xc00b4a0cbc, 0x0)
    /usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc00b4a0cb8)
    /usr/local/go/src/sync/mutex.go:134 +0xff
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).beginRWTx(0xc00b4a0b40, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:512 +0x5e
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Begin(0xc00b4a0b40, 0xc011e93201, 0xc011e92798, 0x8, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:461 +0x38
github.com/xyproto/algernon/vendor/github.com/coreos/bbolt.(*DB).Update(0xc00b4a0b40, 0xc011fa1f10, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/coreos/bbolt/db.go:579 +0x3c
github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt.NewKeyValue(0xc00b4a0b40, 0xc011e92798, 0x8, 0x7f4e1d260600, 0xc011e88000, 0xc4cf47e9)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt/simplebolt.go:586 +0xa6
github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt.(*BoltCreator).NewKeyValue(0xc011d94050, 0xc011e92798, 0x8, 0x10, 0xf1c040, 0xc011fa1fd8, 0x74af39)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/xyproto/simplebolt/creator.go:40 +0x42
github.com/xyproto/algernon/lua/datastruct.newKeyValue(0xc011e86640, 0x1223840, 0xc011d94050, 0xc011e92798, 0x8, 0x7f, 0x1c219b0, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/lua/datastruct/keyvalue.go:28 +0x4f
github.com/xyproto/algernon/lua/datastruct.LoadKeyValue.func1(0xc011e86640, 0xc012330050)
    /home/ubuntu/go/src/github.com/xyproto/algernon/lua/datastruct/keyvalue.go:147 +0xaf
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.callGFunction(0xc011e86640, 0x0, 0xc011fa21d8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:136 +0x40
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.init.3.func26(0xc011e86640, 0x7c000402, 0xc012330000, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:717 +0x394
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.mainLoop(0xc011e86640, 0xc012330000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/vm.go:31 +0xda
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).callR(0xc011e86640, 0x0, 0xffffffffffffffff, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:876 +0x247
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).Call(0xc011e86640, 0x0, 0xffffffffffffffff)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1613 +0x48
github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua.(*LState).PCall(0xc011e86640, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/vendor/github.com/yuin/gopher-lua/state.go:1676 +0xda
github.com/xyproto/algernon/engine.(*Config).LuaFunctionMap.func1.1(0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/lua.go:303 +0x299
reflect.Value.call(0xe996c0, 0xc011e841e0, 0x13, 0xfcbef4, 0x4, 0x1c1f5f8, 0x1, 0x0, 0xfc6000, 0xecba01, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xe996c0, 0xc011e841e0, 0x13, 0x1c1f5f8, 0x0, 0x0, 0x98, 0x7f4e1d260600, 0x124e640)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.call(0xea2f60, 0xc00a6b8ad0, 0x94, 0x1c1f5f8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /usr/local/go/src/text/template/funcs.go:278 +0x3c0
reflect.Value.call(0xeba5c0, 0x1093fe8, 0x13, 0xfcbef4, 0x4, 0xc01215e760, 0x2, 0x1, 0xfc6000, 0xc000056280, ...)
    /usr/local/go/src/reflect/value.go:447 +0x454
reflect.Value.Call(0xeba5c0, 0x1093fe8, 0x13, 0xc01215e760, 0x1, 0x1, 0x1225d40, 0xc01219a5d0, 0xfc6000)
    /usr/local/go/src/reflect/value.go:308 +0xa4
text/template.(*state).evalCall(0xc011fa34c8, 0xec0b40, 0xc011e803f0, 0x15, 0xeba5c0, 0x1093fe8, 0x13, 0x1225cc0, 0xc01219a570, 0xc0121a21eb, ...)
    /usr/local/go/src/text/template/exec.go:695 +0x6bd
text/template.(*state).evalFunction(0xc011fa34c8, 0xec0b40, 0xc011e803f0, 0x15, 0xc01219a5a0, 0x1225cc0, 0xc01219a570, 0xc01215e640, 0x2, 0x2, ...)
    /usr/local/go/src/text/template/exec.go:563 +0x172
text/template.(*state).evalCommand(0xc011fa34c8, 0xec0b40, 0xc011e803f0, 0x15, 0xc01219a570, 0xec12c0, 0x1c1f5f8, 0x99, 0xc011fa3318, 0x951ca7, ...)
    /usr/local/go/src/text/template/exec.go:460 +0x5e9
text/template.(*state).evalPipeline(0xc011fa34c8, 0xec0b40, 0xc011e803f0, 0x15, 0xc011e97ce0, 0x0, 0x0, 0x98)
    /usr/local/go/src/text/template/exec.go:429 +0x126
text/template.(*state).walk(0xc011fa34c8, 0xec0b40, 0xc011e803f0, 0x15, 0x1225bc0, 0xc01219a600)
    /usr/local/go/src/text/template/exec.go:254 +0x49b
text/template.(*state).walk(0xc011fa34c8, 0xec0b40, 0xc011e803f0, 0x15, 0x1225e00, 0xc01219a360)
    /usr/local/go/src/text/template/exec.go:262 +0x142
text/template.(*Template).execute(0xc012061ac0, 0x1213640, 0xc0120de9a0, 0xec0b40, 0xc011e803f0, 0x0, 0x0)
    /usr/local/go/src/text/template/exec.go:217 +0x215
text/template.(*Template).Execute(0xc012061ac0, 0x1213640, 0xc0120de9a0, 0xec0b40, 0xc011e803f0, 0xc011e97260, 0xc011e97270)
    /usr/local/go/src/text/template/exec.go:200 +0x53
html/template.(*Template).Execute(0xc01219a030, 0x1213640, 0xc0120de9a0, 0xec0b40, 0xc011e803f0, 0xc012150001, 0x0)
    /usr/local/go/src/html/template/template.go:122 +0x8c
github.com/xyproto/algernon/engine.(*Config).AmberPage(0xc00057c000, 0x1221140, 0xc011eae000, 0xc011e9a000, 0xc011eb0570, 0x23, 0xc012154160, 0xb0, 0xb0, 0xc011e803f0)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/rendering.go:635 +0x467
github.com/xyproto/algernon/engine.(*Config).FilePage(0xc00057c000, 0x1221140, 0xc011eae000, 0xc011e9a000, 0xc011eb0570, 0x23, 0xfdae88, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:223 +0x14c6
github.com/xyproto/algernon/engine.(*Config).DirPage(0xc00057c000, 0x1221140, 0xc011eae000, 0xc011e9a000, 0x7ffe0ceb862e, 0xf, 0xc011e9c060, 0x18, 0xfd69eb, 0x7)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/dirhandler.go:139 +0x2b8
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc011ea6000, 0xc011e9a000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:484 +0x49e
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc011ea6000, 0xc011e9a000)
    /usr/local/go/src/net/http/server.go:1964 +0x44
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc011ea6000, 0xc011e9a000)
    /usr/local/go/src/net/http/server.go:2361 +0x127
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc011ea6000, 0xc011e9a000)
    /usr/local/go/src/net/http/server.go:2741 +0xab
net/http.(*conn).serve(0xc011e86000, 0x12230c0, 0xc011e94040)
    /usr/local/go/src/net/http/server.go:1847 +0x646
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 452 [IO wait]:
internal/poll.runtime_pollWait(0x7f4de01fdde0, 0x72, 0xc011e90e58)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc011e7e018, 0x72, 0xffffffffffffff00, 0x1216940, 0x19dc968)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc011e7e018, 0xc011e80000, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc011e7e000, 0xc011e800d1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc011e7e000, 0xc011e800d1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc011e82000, 0xc011e800d1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:177 +0x68
net/http.(*connReader).backgroundRead(0xc011e800c0)
    /usr/local/go/src/net/http/server.go:676 +0x5a
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2

goroutine 483 [IO wait]:
internal/poll.runtime_pollWait(0x7f4e1d221bc0, 0x72, 0xc011f1ae58)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc008cba218, 0x72, 0xffffffffffffff00, 0x1216940, 0x19dc968)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc008cba218, 0xc00a374300, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc008cba200, 0xc00a3743d1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc008cba200, 0xc00a3743d1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0012d6060, 0xc00a3743d1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:177 +0x68
net/http.(*connReader).backgroundRead(0xc00a3743c0)
    /usr/local/go/src/net/http/server.go:676 +0x5a
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2

goroutine 440 [IO wait]:
internal/poll.runtime_pollWait(0x7f4de01fdb70, 0x72, 0xc011da1e58)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc011d8e218, 0x72, 0xffffffffffffff00, 0x1216940, 0x19dc968)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc011d8e218, 0xc011d90800, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc011d8e200, 0xc011d90821, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc011d8e200, 0xc011d90821, 0x1, 0x1, 0xc011e08900, 0xc011f02cd0, 0x36)
    /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc011d94038, 0xc011d90821, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:177 +0x68
net/http.(*connReader).backgroundRead(0xc011d90810)
    /usr/local/go/src/net/http/server.go:676 +0x5a
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2

goroutine 422 [IO wait]:
internal/poll.runtime_pollWait(0x7f4e1d2216e0, 0x72, 0xc011f1b658)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc00f888418, 0x72, 0xffffffffffffff00, 0x1216940, 0x19dc968)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc00f888418, 0xc00f892300, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc00f888400, 0xc00f892371, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc00f888400, 0xc00f892371, 0x1, 0x1, 0x4, 0x7, 0x113)
    /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc00de32b18, 0xc00f892371, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:177 +0x68
net/http.(*connReader).backgroundRead(0xc00f892360)
    /usr/local/go/src/net/http/server.go:676 +0x5a
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2

goroutine 488 [IO wait]:
internal/poll.runtime_pollWait(0x7f4e1d221130, 0x72, 0xc011f1be58)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc010e1ff18, 0x72, 0xffffffffffffff00, 0x1216940, 0x19dc968)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc010e1ff18, 0xc0110e0000, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc010e1ff00, 0xc0110e00d1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc010e1ff00, 0xc0110e00d1, 0x1, 0x1, 0xc011f22900, 0xc012000cd0, 0x36)
    /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc010ab05f0, 0xc0110e00d1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:177 +0x68
net/http.(*connReader).backgroundRead(0xc0110e00c0)
    /usr/local/go/src/net/http/server.go:676 +0x5a
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2

goroutine 489 [semacquire]:
sync.runtime_SemacquireMutex(0xc00018fa24, 0x0)
    /usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc00018fa20)
    /usr/local/go/src/sync/mutex.go:134 +0xff
sync.(*RWMutex).Lock(0xc00018fa20)
    /usr/local/go/src/sync/rwmutex.go:93 +0x2d
github.com/xyproto/algernon/engine.(*Config).LuaFunctionMap(0xc00057c000, 0x1221140, 0xc0124c23a0, 0xc0122b9e00, 0xc012075c00, 0x1b7, 0x3b7, 0xc0123a8220, 0x20, 0x0, ...)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/lua.go:225 +0x5e
github.com/xyproto/algernon/engine.(*Config).FilePage(0xc00057c000, 0x1221140, 0xc0124c23a0, 0xc0122b9e00, 0xc011eb0f00, 0x23, 0xfdae88, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:196 +0x1555
github.com/xyproto/algernon/engine.(*Config).DirPage(0xc00057c000, 0x1221140, 0xc0124c23a0, 0xc0122b9e00, 0x7ffe0ceb862e, 0xf, 0xc011e9c380, 0x18, 0xfd69eb, 0x7)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/dirhandler.go:139 +0x2b8
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc011f2c2a0, 0xc0122b9e00)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:484 +0x49e
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc011f2c2a0, 0xc0122b9e00)
    /usr/local/go/src/net/http/server.go:1964 +0x44
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc011f2c2a0, 0xc0122b9e00)
    /usr/local/go/src/net/http/server.go:2361 +0x127
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc011f2c2a0, 0xc0122b9e00)
    /usr/local/go/src/net/http/server.go:2741 +0xab
net/http.(*conn).serve(0xc012042640, 0x12230c0, 0xc0122dbb40)
    /usr/local/go/src/net/http/server.go:1847 +0x646
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 421 [IO wait]:
internal/poll.runtime_pollWait(0x7f4de01fdc40, 0x72, 0xc011862658)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc011d8e098, 0x72, 0xffffffffffffff00, 0x1216940, 0x19dc968)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc011d8e098, 0xc011d90100, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc011d8e080, 0xc011d901f1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc011d8e080, 0xc011d901f1, 0x1, 0x1, 0x4, 0x7, 0x113)
    /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc011d94010, 0xc011d901f1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:177 +0x68
net/http.(*connReader).backgroundRead(0xc011d901e0)
    /usr/local/go/src/net/http/server.go:676 +0x5a
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2

goroutine 424 [IO wait]:
internal/poll.runtime_pollWait(0x7f4e1d221470, 0x72, 0xc011e91658)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc010382e98, 0x72, 0xffffffffffffff00, 0x1216940, 0x19dc968)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc010382e98, 0xc010347e00, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc010382e80, 0xc010347e41, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc010382e80, 0xc010347e41, 0x1, 0x1, 0x4, 0x7, 0x113)
    /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc00543c9c8, 0xc010347e41, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:177 +0x68
net/http.(*connReader).backgroundRead(0xc010347e30)
    /usr/local/go/src/net/http/server.go:676 +0x5a
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2

goroutine 457 [IO wait]:
internal/poll.runtime_pollWait(0x7f4de01fd830, 0x72, 0xc011e91e58)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc011f23b18, 0x72, 0xffffffffffffff00, 0x1216940, 0x19dc968)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc011f23b18, 0xc0123d0500, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc011f23b00, 0xc0123d05b1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc011f23b00, 0xc0123d05b1, 0x1, 0x1, 0xc011e7e980, 0xc0120decd0, 0x36)
    /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc011f10208, 0xc0123d05b1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:177 +0x68
net/http.(*connReader).backgroundRead(0xc0123d05a0)
    /usr/local/go/src/net/http/server.go:676 +0x5a
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2

goroutine 458 [runnable]:
net/http.(*connReader).backgroundRead(0xc00a442090)
    /usr/local/go/src/net/http/server.go:675
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2

goroutine 423 [chan receive]:
github.com/xyproto/algernon/engine.(*Config).AmberPage(0xc00057c000, 0x1221140, 0xc011f83360, 0xc011dce300, 0xc011e30f00, 0x23, 0xc011e36280, 0x71, 0x271, 0xc0112dae10)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/rendering.go:612 +0xe3a
github.com/xyproto/algernon/engine.(*Config).FilePage(0xc00057c000, 0x1221140, 0xc011f83360, 0xc011dce300, 0xc011e30f00, 0x23, 0xfdae88, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:223 +0x14c6
github.com/xyproto/algernon/engine.(*Config).DirPage(0xc00057c000, 0x1221140, 0xc011f83360, 0xc011dce300, 0x7ffe0ceb862e, 0xf, 0xc011e06340, 0x18, 0xfd69eb, 0x7)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/dirhandler.go:139 +0x2b8
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc011e1c1c0, 0xc011dce300)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:484 +0x49e
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc011e1c1c0, 0xc011dce300)
    /usr/local/go/src/net/http/server.go:1964 +0x44
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc011e1c1c0, 0xc011dce300)
    /usr/local/go/src/net/http/server.go:2361 +0x127
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc011e1c1c0, 0xc011dce300)
    /usr/local/go/src/net/http/server.go:2741 +0xab
net/http.(*conn).serve(0xc011d98140, 0x12230c0, 0xc011db8480)
    /usr/local/go/src/net/http/server.go:1847 +0x646
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 498 [semacquire]:
sync.runtime_SemacquireMutex(0xc00018fa24, 0x0)
    /usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc00018fa20)
    /usr/local/go/src/sync/mutex.go:134 +0xff
sync.(*RWMutex).Lock(0xc00018fa20)
    /usr/local/go/src/sync/rwmutex.go:93 +0x2d
github.com/xyproto/algernon/engine.(*Config).LuaFunctionMap(0xc00057c000, 0x1221140, 0xc011d136c0, 0xc01220e000, 0xc011d2dc00, 0x1b7, 0x3b7, 0xc011d261e0, 0x20, 0x0, ...)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/lua.go:225 +0x5e
github.com/xyproto/algernon/engine.(*Config).FilePage(0xc00057c000, 0x1221140, 0xc011d136c0, 0xc01220e000, 0xc012302570, 0x23, 0xfdae88, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:196 +0x1555
github.com/xyproto/algernon/engine.(*Config).DirPage(0xc00057c000, 0x1221140, 0xc011d136c0, 0xc01220e000, 0x7ffe0ceb862e, 0xf, 0xc011d26140, 0x18, 0xfd69eb, 0x7)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/dirhandler.go:139 +0x2b8
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc0122fc000, 0xc01220e000)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:484 +0x49e
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc0122fc000, 0xc01220e000)
    /usr/local/go/src/net/http/server.go:1964 +0x44
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc0122fc000, 0xc01220e000)
    /usr/local/go/src/net/http/server.go:2361 +0x127
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc0122fc000, 0xc01220e000)
    /usr/local/go/src/net/http/server.go:2741 +0xab
net/http.(*conn).serve(0xc0121ec000, 0x12230c0, 0xc0121fe040)
    /usr/local/go/src/net/http/server.go:1847 +0x646
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 515 [IO wait]:
internal/poll.runtime_pollWait(0x7f4e1d221d60, 0x72, 0xc012208e58)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc008cba098, 0x72, 0xffffffffffffff00, 0x1216940, 0x19dc968)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc008cba098, 0xc00a374200, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc008cba080, 0xc00a3742b1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc008cba080, 0xc00a3742b1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0012d6048, 0xc00a3742b1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:177 +0x68
net/http.(*connReader).backgroundRead(0xc00a3742a0)
    /usr/local/go/src/net/http/server.go:676 +0x5a
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2

goroutine 531 [IO wait]:
internal/poll.runtime_pollWait(0x7f4de01fdaa0, 0x72, 0xc012204e58)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc0121e0018, 0x72, 0xffffffffffffff00, 0x1216940, 0x19dc968)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc0121e0018, 0xc0121e4000, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc0121e0000, 0xc0121e40d1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc0121e0000, 0xc0121e40d1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0121e6000, 0xc0121e40d1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:177 +0x68
net/http.(*connReader).backgroundRead(0xc0121e40c0)
    /usr/local/go/src/net/http/server.go:676 +0x5a
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2

goroutine 500 [semacquire]:
sync.runtime_SemacquireMutex(0xc00018fa24, 0x0)
    /usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc00018fa20)
    /usr/local/go/src/sync/mutex.go:134 +0xff
sync.(*RWMutex).Lock(0xc00018fa20)
    /usr/local/go/src/sync/rwmutex.go:93 +0x2d
github.com/xyproto/algernon/engine.(*Config).LuaFunctionMap(0xc00057c000, 0x1221140, 0xc0123b8000, 0xc01220e100, 0xc0123ca000, 0x1b7, 0x3b7, 0xc0123a8100, 0x20, 0x0, ...)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/lua.go:225 +0x5e
github.com/xyproto/algernon/engine.(*Config).FilePage(0xc00057c000, 0x1221140, 0xc0123b8000, 0xc01220e100, 0xc0123ba570, 0x23, 0xfdae88, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:196 +0x1555
github.com/xyproto/algernon/engine.(*Config).DirPage(0xc00057c000, 0x1221140, 0xc0123b8000, 0xc01220e100, 0x7ffe0ceb862e, 0xf, 0xc0123a8060, 0x18, 0xfd69eb, 0x7)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/dirhandler.go:139 +0x2b8
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc0123b4000, 0xc01220e100)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:484 +0x49e
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc0123b4000, 0xc01220e100)
    /usr/local/go/src/net/http/server.go:1964 +0x44
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc0123b4000, 0xc01220e100)
    /usr/local/go/src/net/http/server.go:2361 +0x127
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc0123b4000, 0xc01220e100)
    /usr/local/go/src/net/http/server.go:2741 +0xab
net/http.(*conn).serve(0xc0121ec0a0, 0x12230c0, 0xc0121fe240)
    /usr/local/go/src/net/http/server.go:1847 +0x646
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 501 [IO wait]:
internal/poll.runtime_pollWait(0x7f4de01fd9d0, 0x72, 0xc011f16e58)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc0121e0098, 0x72, 0xffffffffffffff00, 0x1216940, 0x19dc968)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc0121e0098, 0xc0121e4100, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc0121e0080, 0xc0121e41c1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc0121e0080, 0xc0121e41c1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0121e6010, 0xc0121e41c1, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:177 +0x68
net/http.(*connReader).backgroundRead(0xc0121e41b0)
    /usr/local/go/src/net/http/server.go:676 +0x5a
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2

goroutine 502 [semacquire]:
sync.runtime_SemacquireMutex(0xc00018fa24, 0x0)
    /usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc00018fa20)
    /usr/local/go/src/sync/mutex.go:134 +0xff
sync.(*RWMutex).Lock(0xc00018fa20)
    /usr/local/go/src/sync/rwmutex.go:93 +0x2d
github.com/xyproto/algernon/engine.(*Config).LuaFunctionMap(0xc00057c000, 0x1221140, 0xc0123b8160, 0xc01220e200, 0xc0123ca400, 0x1b7, 0x3b7, 0xc0123a8200, 0x20, 0x0, ...)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/lua.go:225 +0x5e
github.com/xyproto/algernon/engine.(*Config).FilePage(0xc00057c000, 0x1221140, 0xc0123b8160, 0xc01220e200, 0xc0123baba0, 0x23, 0xfdae88, 0x8)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:196 +0x1555
github.com/xyproto/algernon/engine.(*Config).DirPage(0xc00057c000, 0x1221140, 0xc0123b8160, 0xc01220e200, 0x7ffe0ceb862e, 0xf, 0xc0123a8160, 0x18, 0xfd69eb, 0x7)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/dirhandler.go:139 +0x2b8
github.com/xyproto/algernon/engine.(*Config).RegisterHandlers.func1(0x1222300, 0xc0123b40e0, 0xc01220e200)
    /home/ubuntu/go/src/github.com/xyproto/algernon/engine/handlers.go:484 +0x49e
net/http.HandlerFunc.ServeHTTP(0xc000530dc0, 0x1222300, 0xc0123b40e0, 0xc01220e200)
    /usr/local/go/src/net/http/server.go:1964 +0x44
net/http.(*ServeMux).ServeHTTP(0xc00a2c2510, 0x1222300, 0xc0123b40e0, 0xc01220e200)
    /usr/local/go/src/net/http/server.go:2361 +0x127
net/http.serverHandler.ServeHTTP(0xc00a344f70, 0x1222300, 0xc0123b40e0, 0xc01220e200)
    /usr/local/go/src/net/http/server.go:2741 +0xab
net/http.(*conn).serve(0xc0121ec140, 0x12230c0, 0xc0121fe3c0)
    /usr/local/go/src/net/http/server.go:1847 +0x646
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2851 +0x2f5

goroutine 503 [IO wait]:
internal/poll.runtime_pollWait(0x7f4de01fd900, 0x72, 0xc011f17658)
    /usr/local/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc0121e0198, 0x72, 0xffffffffffffff00, 0x1216940, 0x19dc968)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc0121e0198, 0xc0121e4500, 0x1, 0x1)
    /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc0121e0180, 0xc0121e4581, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc0121e0180, 0xc0121e4581, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc0121e6028, 0xc0121e4581, 0x1, 0x1, 0x0, 0x0, 0x0)
    /usr/local/go/src/net/net.go:177 +0x68
net/http.(*connReader).backgroundRead(0xc0121e4570)
    /usr/local/go/src/net/http/server.go:676 +0x5a
created by net/http.(*connReader).startBackgroundRead
    /usr/local/go/src/net/http/server.go:672 +0xd2
Time: 0h:00m:20s
xyproto commented 5 years ago

Thanks for reporting, I will look into this.

xyproto commented 5 years ago

I am able to reproduce the issue.