Still trying to fathom this one. I have added quite a few log lines to a copy of 9.4.12 and compiled it hoping to find the fault.
Below is from the log (at DEBUG5). Apologies for my name in the log lines, it was the easiest way to grep them specifically I also apologise that its a bit messy, i'm not a C dev.
127.0.0.1 2017-06-23 09:45:26.083 BST 4061 594ccaa6.fdd postgres [unknown] 00000 DEBUG: HARRYAMBROSE - UPDATE - Old tuple is 0, new tuple is 0, table is: 2345873096
127.0.0.1 2017-06-23 09:45:26.083 BST 4061 594ccaa6.fdd postgres [unknown] 00000 STATEMENT: VACUUM (FULL, ANALYZE) ctab
127.0.0.1 2017-06-23 09:45:26.083 BST 4061 594ccaa6.fdd postgres [unknown] 00000 DEBUG: HARRYAMBROSE - UPDATE - Old tuple is 0, new tuple is 0, table is: 2345873096
127.0.0.1 2017-06-23 09:45:26.083 BST 4061 594ccaa6.fdd postgres [unknown] 00000 STATEMENT: VACUUM (FULL, ANALYZE) ctab
127.0.0.1 2017-06-23 09:45:26.083 BST 4061 594ccaa6.fdd postgres [unknown] 00000 DEBUG: HARRYAMBROSE - UPDATE - Old tuple is 0, new tuple is 0, table is: 2345873096
127.0.0.1 2017-06-23 09:45:26.083 BST 4061 594ccaa6.fdd postgres [unknown] 00000 STATEMENT: VACUUM (FULL, ANALYZE) ctab
127.0.0.1 2017-06-23 09:45:26.083 BST 4061 594ccaa6.fdd postgres [unknown] 00000 DEBUG: HARRYAMBROSE - index_beginscan_internal scan: 57267920
127.0.0.1 2017-06-23 09:45:26.083 BST 4061 594ccaa6.fdd postgres [unknown] 00000 STATEMENT: VACUUM (FULL, ANALYZE) ctab
127.0.0.1 2017-06-23 09:45:26.083 BST 4061 594ccaa6.fdd postgres [unknown] 00000 DEBUG: HARRYAMBROSE - index_beginscan_internal scan: 57267920
127.0.0.1 2017-06-23 09:45:26.083 BST 4061 594ccaa6.fdd postgres [unknown] 00000 STATEMENT: VACUUM (FULL, ANALYZE) ctab
127.0.0.1 2017-06-23 09:45:26.083 BST 4061 594ccaa6.fdd postgres [unknown] 00000 DEBUG: HARRYAMBROSE - index_beginscan_internal scan: 57267920
127.0.0.1 2017-06-23 09:45:26.083 BST 4061 594ccaa6.fdd postgres [unknown] 00000 STATEMENT: VACUUM (FULL, ANALYZE) ctab
127.0.0.1 2017-06-23 09:45:26.084 BST 4061 594ccaa6.fdd postgres [unknown] 00000 DEBUG: CommitTransaction
127.0.0.1 2017-06-23 09:45:26.084 BST 4061 594ccaa6.fdd postgres [unknown] 00000 STATEMENT: VACUUM (FULL, ANALYZE) ctab
127.0.0.1 2017-06-23 09:45:26.084 BST 4061 594ccaa6.fdd postgres [unknown] 00000 DEBUG: name: unnamed; blockState: STARTED; state: INPROGR, xid/subid/cid: 73603293/1/0 (used), nestlvl: 1, children:
127.0.0.1 2017-06-23 09:45:26.084 BST 4061 594ccaa6.fdd postgres [unknown] 00000 STATEMENT: VACUUM (FULL, ANALYZE) ctab
127.0.0.1 2017-06-23 09:45:26.084 BST 4061 594ccaa6.fdd postgres [unknown] 00000 DEBUG: StartTransaction
127.0.0.1 2017-06-23 09:45:26.084 BST 4061 594ccaa6.fdd postgres [unknown] 00000 STATEMENT: VACUUM (FULL, ANALYZE) ctab
127.0.0.1 2017-06-23 09:45:26.084 BST 4061 594ccaa6.fdd postgres [unknown] 00000 DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
127.0.0.1 2017-06-23 09:45:26.084 BST 4061 594ccaa6.fdd postgres [unknown] 00000 STATEMENT: VACUUM (FULL, ANALYZE) ctab