summaryrefslogtreecommitdiffstats
path: root/generic
Commit message (Collapse)AuthorAgeFilesLines
* [894da183c8] Fix and test for bug at the point it was introduced.bug_894da183c8dgp2015-04-291-0/+3
|
* Move code that can only matter in the first loop iteration out of the loop.dgp2014-05-271-13/+6
|
* Followup on [72c54e1659]. Removed unused variable.andreask2014-05-231-1/+0
|
* Workarounds and fixes for wrapped executables on various platforms andreask2014-05-221-1/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | regarding the handling of wrapped dynamic libraries. The basic flow of operation is to copy such libraries into a temp file, hand them to the OS loader for processing, and then to delete them immediately, to prevent them from being accessible to other executables. On platforms where that is not possible the library is left in place and things are arranged to delete it on regular process exit. An example of the latter are older revisions of HPUX which report that the file is busy when trying to delete it. Younger revisions of HPUX have changed to allow the deletion, but are also buggy, the OS loader mangles its data structures so that a second library loaded in this manner fails. More recently it was found that Linux which is usually ok with deleting the file and gets everything right shows the same trouble as modern HPUX when the "docker" containerization system is involved, or more specifically the AUFS in use there. Deleting the loaded library file mangles data structures and breaks loading of the following libraries. For a demonstration which does not involve Tcl at all see the ticket https://github.com/dotcloud/docker/issues/1911 in the docker tracker. This of course breaks the use of wrapped executables within docker containers. This commit introduces the function TclSkipUnlink() which centralizes the handling of such exceptions to unlinking the library after unload, and provides code handling the known cases. IOW HPUX is generally forced to not unlink, and ditto when we detect that the copied library file resides within an AUFS. The latter must however be explicitly activated by setting the define -DTCL_TEMPLOAD_NO_UNLINK during build. We still need proper configure tests to set it on the relevant platforms (i.e. Linux). The AUFS detection and handling can be overridden by the environment variable TCL_TEMPLOAD_NO_UNLINK which can force the behaviour either way (skip or not). In case the user knows best, or wishes to test if the problem with AUFS has been fixed.
* Rework the management of the CHANNEL_BLOCKED and CHANNEL_EOF flags, indgp2014-05-202-159/+155
|\ | | | | | | particular not allowing them to leak between multiple layers of a stacked channel. Much common code refactored into ChanRead().
| * Simplify the inputProc of [testchannel transform].dgp_channel_flag_repairdgp2014-05-171-21/+18
| |
| * Improved use of EOF state to avoid worthless allocations.dgp2014-05-161-10/+12
| |
| * Move the resets and testings of the BLOCKED flag to where they make more sense.dgp2014-05-161-22/+17
| |
| * merge 8.5dgp2014-05-161-9/+37
| |\ | |/ |/|
* | merge 8.5bug_io_32_11dgp2014-05-162-2/+11
|\ \
* \ \ Merge completion of dgp-read-bytes branch.dgp2014-05-1614-1231/+849
|\ \ \
* | | | Bug fix - accept consumption of the trailing newline in crlf with nodgp2014-05-161-9/+37
| | | | | | | | | | | | characters produced. Also delete false assertions.
| | | * Push the setting and clearing of CHANNEL_BLOCKED flag to the more innerdgp2014-05-151-11/+12
| | | | | | | | | | | | parts of the channel read machinery.
| | | * Rework Tcl_ReadRaw() mostly taking things out of the loop that never repeat.dgp2014-05-131-36/+20
| | | |
| | | * Salvaged what was left of value in the dgp-read-bytes-detour branch.dgp2014-05-131-79/+97
| | | |\ | | |/ / | | | | | | | | | | | | | | | | | | | | Refactored much management of the BLOCKED and EOF flags into ChanRead() then began repairing some of the logic about them. Tests iogt-2.* now fail because they've been crafted as experiments recording the fine detail of reflected channel driver calls, and fixing the management of channel flags is changing that.
| | | * missing declarationdgp_read_bytes_detourdgp2014-03-211-0/+1
| | | |
| | | * Fixup ChanRead() header. Note (dstSize > 0) precondition.dgp2014-03-211-2/+8
| | | |
| | | * Documentation header for ChanRead()dgp2014-03-211-2/+23
| | | |
| | | * Both callers of ChanRead() have simlar epilogs. Shift that into ChanReaddgp2014-03-201-73/+50
| | | | | | | | | | | | and refactor.
| | * | Test iocmd-32.1 is not "impossible" but after writing it properly itdgp2014-05-091-1/+11
| | | | | | | | | | | | does segfault trying to use a deleted interp. Fixed.
| | * | Merge the reforms of dgp-read-bytes branch into 8.5+ releases.dgp2014-05-085-862/+704
| | |\ \ | | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | Large overhaul of I/O read operations - Protects integer overflow of buffers, reusing append machinery - Forces -buffersize changes to take place when commanded - Uses assertions to simplify code in "can't happen" situations - Eliminated duplication of -translation processing - Fixes bugs io-35.18b and io-35.20
| * | | Merge 8.5.dgp_read_bytesdgp2014-05-083-9/+27
| |\ \ \ | | |/ /
| | * | Stop leak in iocmd-21.22.dgp2014-05-081-0/+1
| | | |
| | * | Stop leaks of cloned Tcl_ChannelTypes.dgp2014-05-071-8/+20
| | | |
| | * | Stop leak in io-53.5.dgp2014-05-071-0/+1
| | | |
| | * | Stop leak in io-33.7.dgp2014-05-061-1/+2
| | | |
| | * | Stop memory leak in io-29.34dgp2014-05-061-0/+2
| | | |
| | * | Stop memory leak in io-29.27.dgp2014-05-061-0/+1
| | | |
| * | | merge 8.5dgp2014-05-061-2/+13
| |\ \ \ | | |/ /
| | * | Have to manage the lifetime of the self handle in testchannel transform.dgp2014-05-061-2/+13
| | | |
| * | | Merge GotFlag() backport from 8.5. Conflicts galore!dgp2014-05-051-90/+82
| |\ \ \ | | |/ /
| | * | Backport "GotFlag" macro from Tcl 8.6. Makes code more readable. No change ↵jan.nijtmans2014-05-051-97/+89
| | | | | | | | | | | | | | | | in functionality.
| * | | merge 8.5dgp2014-05-021-2/+59
| |\ \ \ | | |/ /
| | * | Backport channel self restacking support. (Test iogt-2.4).dgp2014-05-021-2/+59
| | |\ \
| | | * | Add some comments about possible other self-restacking troubles.dgp2014-05-021-1/+8
| | | | |
| | | * | Fully restore topChan resetting to accommodate self-restacking channels.dgp2014-05-021-17/+26
| | | | |
| | | * | Re-enable buffer recycling.dgp2014-05-021-1/+1
| | | | |
| | | * | Stop the segfault in iogt-2.4. First by changing the UpdateInterest()dgp2014-05-011-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | call that triggers it. "downChanPtr" may no longer be the right argument at that point. Second, after ending the segfault, the test became an infinite loop (nested unstacking?! whoa.), so revised the test to one that terminates (and passes). Left behind a comment that the recursive unstacking case may require more examination.
| | | * | merge trunkdgp2014-05-013-13/+61
| | | |\ \
| | | | * \ We must Preserve channels if we're going to use TclChanCaughtErrorBypass() ↵dgp2014-05-011-3/+22
| | | | |\ \ | | | |_|/ / | | |/| | | | | | | | | to get error information after channel routines are called (and have possibly called for the channel to go away).
| | | | | |
| | | | | \
| | | | *-. \ Merge in the fixes for improper ChannelBuffer sharing via recycling.dgp2014-05-011-8/+27
| | | | |\ \ \
| | | | * | | | [82e7f67325] Fix an evil refcount problem in compiled [string replace].dkf2014-04-301-2/+12
| | | | | | | |
| | | * | | | | merge trunkdgp2014-04-291-2/+4
| | | |\ \ \ \ \ | | | | |/ / / /
| | | | * | | | Fix bug exposed when buffer recycling is disabled.dgp2014-04-291-2/+4
| | | | |\ \ \ \
| | | * | | | | | Disable buffer recycling, which creates mysteries.dgp2014-04-251-1/+1
| | | | | | | | |
| | | * | | | | | Test iortrans-4.8.2 demos an infinite loop. Possible trouble withdgp2014-04-251-0/+5
| | | |/ / / / / | | | | | | | | | | | | | | | | pushback buffers.
| | | * | | | | Make sure the ReflectedChannel struct is freed in the handler thread,dgp2014-04-241-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | where it was allocated. This constraint allows the struct to safely hold Tcl_Obj values, which has been convenient for storing callback commands.
| | | * | | | | [3493120] Plug memory leak in thread exit.dgp2014-04-243-2/+34
| | | |\ \ \ \ \
| | | * \ \ \ \ \ Merge the [testchannel transform] fixes.dgp2014-04-221-47/+75
| | | |\ \ \ \ \ \
| | | * \ \ \ \ \ \ Merge refcounting machinery for ChannelBuffer.dgp2014-04-213-8/+46
| | | |\ \ \ \ \ \ \