From ee11a0c5f4dba33a6ac2ec24ad379bb288e0b324 Mon Sep 17 00:00:00 2001
From: "benjamin.franksen" <benjamin.franksen@helmholtz-berlin.de>
Date: Thu, 4 Jul 2013 18:44:58 +0000
Subject: [PATCH] docs: make two patch files available from KnowProblems page

---
 documentation/KnownProblems.txt | 36 +++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/documentation/KnownProblems.txt b/documentation/KnownProblems.txt
index bf288e35..e3913b52 100644
--- a/documentation/KnownProblems.txt
+++ b/documentation/KnownProblems.txt
@@ -15,6 +15,42 @@ also found the reason: the semaphore that makes the state set block
 until the CA callback arrives, times out but is never signalled, so
 the variable never recovers from the situation.
 
+This problem is probably present in all releases of the 2.1 branch.
+
+There are two patches available that may or may not fix the problem
+or introduce new problems. You can cherry-pick them from the `darcs
+repository`_ or by downloading and manually applying patch files
+(using ``patch -p1 <patchfile>``):
+
+* seq: fix problem with synchronous pvPut/pvGet
+  
+  The problem was that that once a synchronous request times out, the
+  variable would never recover from the timeout state. This was because
+  the semaphores would not be signalled on timeout. However, in order
+  to correctly discard events (i.e. callbacks from CA) that belong to
+  timed out requests, we have to remember them. This is what the getReq
+  and putReq arrays in struct state_set are for.
+  
+  The fix assumes that CA will eventually call the callback for each
+  accepted request, even if the channel disconnects. If the assumption is
+  wrong then we have a memory leak.
+
+  Download patch file here: `2.1.12-fix1.patch`_.
+
+* seq: use a list to remember timed out requests, free on disconnect
+  
+  This fixes the potential memory leak introduced by fixing the problem
+  with synchronous pvPut/pvGet.
+  
+  The fix assumes that no request callbacks will be called by CA for a
+  variable after a its disconnect callback arrives. If the assumption is
+  wrong then we get potential memory corruption.
+
+  Download patch file here: `2.1.12-fix2.patch`_.
+
+.. _2.1.12-fix1.patch: http://www-csr.bessy.de/control/SoftDist/sequencer/releases/seq-2.1.12-fix1.patch
+.. _2.1.12-fix2.patch: http://www-csr.bessy.de/control/SoftDist/sequencer/releases/seq-2.1.12-fix2.patch
+.. _darcs repository: http://www-csr.bessy.de/control/SoftDist/sequencer/repo/branch-2-1
 
 .. _Known_Problems_2.1.10:
 
-- 
GitLab