New Foswiki release 2.1.6 is available with important security fixes.
Sourceforge foswiki email lists being discontinued. Subscribe to the new Foswiki announce and discuss lists at MailingLists

Release Meeting: 11 Dec 2017


General status.

1. Task review

  • 14563 (Waiting for Release): Race Condition in AUTOINC topics Checkins on branches: Item14563 master - is a nasty race condition. But it really is a design issue. AUTOINC is handled by the UI. It really should be in META or possibly Store. It needs an API change with locking. Deferring this to 2.2.
  • 10219 (Needs Merge): AUTOINC cannot be used when creating a topic programmatically Checkins on branches: Item14563 master is related to Item14563, and points out the API shortcomings with AUTONIC

2. Development Discussion

3. Next release

Patch release 2.1.5

  • Release from: Release02x01
  • Beta start:
  • Release target:

Feature release 2.2.0

  • Feature Freeze: 01 Dec 2017
  • Release from: master
  • Beta start:
  • Release target:

4. Community Events

  • Joint "Wiki-Based Projects" booth at FOSDEM 2018 together with TikiWiki, XWiki and DocuWiki

Next meeting - - Monday 08 Jan 2018 1300Z — ReleaseMeeting02x02_20180108

Please review and be prepared to discuss FeatureProposals and ReleasePlan


(08:14:58 AM) MichaelDaum  entered the room.
(08:15:11 AM) MichaelDaum: Hi there. Sorry for being late.
(08:15:26 AM) gac410: Hi MichaelDaum I saw you your busy ;)
(08:15:41 AM) MichaelDaum: had to get some stuff off my chest
(08:15:43 AM) gac410: Good morning ... at least I had time to have a cup of coffee.
(08:16:34 AM) gac410: We ready to get started?
(08:16:54 AM) GuilainC_AtWork entered the room.
(08:17:05 AM) MichaelDaum: I hope that everything is fine on all branches
(08:20:45 AM) MichaelDaum: let's get started with the RM
(08:21:00 AM) gac410: MichaelDaum: if you give me a hint on how to unban, I'll give it a go. But y... RM first
(08:21:10 AM) gac410: Okay. Urgent tasks.
(08:22:26 AM) gac410: No progress on the existing. There is one new one.
(08:23:18 AM) gac410: 14563 ... if two people try to create an autoinc topic at the same time. there is no lock mechanism. They end up with two revs of the same topic.
(08:24:05 AM) MichaelDaum: yes 14563 stinks
(08:24:08 AM) vrurg: Hi
(08:24:19 AM) gac410: Hi Vadim
(08:25:17 AM) gac410: Im not sure how to go about 14563, We need some creative thinking. An ugly API change, a flag to tell store that you are saving a "new" topic, and if it exists, to croak.
(08:25:37 AM) gac410: Or a locking mechanism somehow to the autoinc code itself.
(08:25:41 AM) MichaelDaum: haven't looked at the code
(08:26:35 AM) gac410: Well lets not fix it here. The question is, should it be urgent for a patch release. It's existed forever.
(08:27:04 AM) MichaelDaum: the problem is ... again ... that Foswiki::UI::* modules are too fat. there is too much logic going on in them ... and thus in Foswiki::UI::Save ... doing the autoinc expansion too early
(08:27:32 AM) MichaelDaum: it should do so right before actualy performing the store op
(08:27:58 AM) MichaelDaum: otherwise there is no sensible way of making it atomic
(08:28:31 AM) gac410: Y. good point. A redesign would be to have Meta do it. Or maybe even as part of store. But even then, there could be a race. So store needs to grab an autoinc lock, get the topic name, save it, and then release the lock.
(08:28:48 AM) MichaelDaum: i.e. Func::saveTopic isnt able to deal with AUTOINC
(08:29:04 AM) gac410: or Meta::saveTopic
(08:29:15 AM) MichaelDaum: yes. meta is the right level. it is not a store specific operation
(08:29:56 AM) MichaelDaum: like: every store should have the feature.
(08:30:21 AM) gac410: right.
(08:31:04 AM) MichaelDaum: I wonder which kind of locking we already have at that layer?
(08:31:39 AM) gac410: I don't believe we have any, we deal with topic editing with the lease files.
(08:32:02 AM) MichaelDaum: y
(08:32:42 AM) MichaelDaum: are there any other parts of the store that would benefit from better locking ... potential other sleeping race conditions?
(08:33:21 AM) gac410: I don't know store all that well.
(08:33:40 AM) MichaelDaum: okay. we all don't know the answer yet.
(08:34:04 AM) MichaelDaum: then let's put the RM glasses on again and decide how and when to deal with the issue
(08:34:09 AM) gac410: Moving the AUTOINC into Meta would probably be much too big for a patch.
(08:34:16 AM) MichaelDaum: +1
(08:34:51 AM) gac410: Suddenly AUTOINC would be a feature accessible to Func or Meta ... right now it's UI only, and there might even be a task complainign about that ... I vaguely recall.
(08:35:03 AM) MichaelDaum: it also needs some hammering unit test trying to provoke a race condition
(08:35:40 AM) gac410: ugh. race conditions are tough to create in our tests - single threaded.
(08:36:09 AM) MichaelDaum: or a tool that you'd start multiple times on the cmd line
(08:36:49 AM) MichaelDaum: just to repro the prob
(08:36:51 AM) vrurg: The test could fork to spawn two-three childs.
(08:37:06 AM) gac410: AUTOINC cannot be used programatically to create a topic.
(08:37:45 AM) MichaelDaum: gawd how embarrassing ... look at the report date :(
(08:39:02 AM) MichaelDaum: maybe Meta isn't the right place actually
(08:39:18 AM) MichaelDaum: different stores would handle the transaction differently
(08:39:48 AM) MichaelDaum: e.g. all file based stores ... vs an sql one
(08:40:31 AM) MichaelDaum: Meta would hand down an autoinc topic down to the store saying "deal with it"
(08:42:38 AM) MichaelDaum: the upper levels would then re-read the meta obj afterwards to get the newly created topic name
(08:42:42 AM) MichaelDaum: anyway
(08:44:18 AM) MichaelDaum: let's target it for 2.2.0
(08:44:53 AM) MichaelDaum: and then we need to make sure these fixes made it to the 3.0 branch
(08:46:11 AM) MichaelDaum: can we move on?
(08:46:59 AM) MichaelDaum: Item14445: I will check in a fix later today
(08:48:58 AM) MichaelDaum: I digged into Item14516 and ended up in Foswiki::Tables::Parser ... which is the point where we need CDot's expertise
(08:49:13 AM) MichaelDaum: though hard to say we get any response from him anymore
(08:49:26 AM) MichaelDaum: :(
(08:53:21 AM) gac410: So the only blocker we could fix for the patch would be Item14445 but that has too many dependencies in extensions?
(08:54:06 AM) MichaelDaum: no thats straight forward.
(08:54:49 AM) MichaelDaum: but whats the deal with
(08:55:21 AM) gac410: I think that one is deep in the store. I was hoping cdot would look at that.
(08:56:00 AM) gac410: Hm I thought i set that waiting for feedback ... I guess I missed it. :(
(08:56:10 AM) MichaelDaum: It isnt really critical, is it?
(08:57:08 AM) gac410: I guess not. Though it's annoying. All our docs have the wrong author.
(08:57:50 AM) MichaelDaum: I see. But people have been living with it for quite some time and still have a working system.
(08:58:21 AM) gac410: The only urgent part is the RM question. Is there some magic I can to as a RM to make ProjectContributor show up as the author.
(08:58:56 AM) MichaelDaum: as far as I remember it is related to the history not being shipped as part of the distro
(08:59:06 AM) gac410: I was trying to see if the meta timestamp matched the file timestamp maybe it would work,
(08:59:30 AM) gac410: Well RCS store works fine without history. This is purely a plain file issue.
(09:00:00 AM) MichaelDaum: right. and when there is no ,pfv dir will it bail out into UnkownUser
(09:00:36 AM) MichaelDaum: CDot always took the stance of "not trusting" META:TOPICINFO
(09:01:18 AM) gac410: but anyway, y it's a cosmetic issue. Just annoying. IIRC, CDot also is the one that insisted we generate "correct" meta and wrote the original svn exit that enforced ProjectContributor and a current timestamp
(09:01:48 AM) gac410: Anyway, I'll remove the urgent flag.
(09:02:10 AM) gac410: Is there anything else that anyone knows of that we really ought to fix for 2.1.5?
(09:02:22 AM) MichaelDaum: all fine. but if there is _no_ history at all there are only two options: UnknownUser or the one in TOPICINFO.
(09:03:18 AM) gac410: right. RCS uses TOPICINFO PlainFile uses UnknownUser. Just an inconsistency, and visible because we default to PFS
(09:04:05 AM) MichaelDaum: there might be two things worth fixing in 2.1.5 that I cam across
(09:04:17 AM) MichaelDaum: at least two
(09:04:18 AM) gac410: The first time I noticed it I spent an evening trying to figure out what I did that broke my system. Reverting patches, etc.
(09:04:37 AM) MichaelDaum: (1) TablePlugin: cellspacing does not work properly
(09:05:10 AM) gac410: Don't hesitate to flip a task to "Urgent" at least it prevents it from falling through the cracks.
(09:05:18 AM) MichaelDaum: (2) use JSON module to generate a json response in WysiwygPlugin's attachments handler ...
(09:05:55 AM) MichaelDaum: WysiwygPlugin can produce an illegal json response on some wild attachment names
(09:07:02 AM) gac410: does cellspacing work at all? Changing how spacing works might be an issue for a patch release, if it breaks tables that people worked around by doing strange cellspacing settings.
(09:07:40 AM) ***gac410 remembers Lavr's pain over a font change in a patch that broke all his table spacing
(09:08:41 AM) MichaelDaum: well it tries to set a cellspacing html attribute to the <table> tag. instead it should set a border-spacing css attr
(09:10:09 AM) gac410: So the question to ask for a patch. If I have crafted a table that fits just right, and we change the plugin to emit border-spacing, is it going to scramble the layout?
(09:10:41 AM) vrurg: For those who depends on odd cellspacing there could be a LSC setting to revert fixed behavior back to the old broken one.
(09:11:53 AM) ***gac410 hates to add lsc settings unless we really need them but y that's an alternative.
(09:11:58 AM) MichaelDaum: let me check: could very well be that PatternSkin has got its own reset to border-spacing ... which the html attr doesnt override anyway
(09:14:32 AM) MichaelDaum: okay confirmed. this is a bug.
(09:14:59 AM) gac410: btw everybody, core/tools/ -e <SomeExtension> does the checks that I run before building a release If -e is omitted it checks every extension.
(09:15:19 AM) MichaelDaum: border-spacing is reset to zero in pub/System/PatternSkinTheme/style.css ... and <table cellspacing="500"> has got no effect then
(09:15:47 AM) gac410: (All checkins in change log. version newer than the uploaded version. no files in git missing from manifest, etc.)
(09:17:18 AM) gac410: Okay, so with Pattern css, cellspacing is ignored. so a disconnect from old html generation in table plugin and newer css?
(09:19:42 AM) MichaelDaum: you could say so. it is more an error introduced by PatternSkin's css reset for tables ... which is the RightThingToDo
(09:20:10 AM) gac410: That's what I was trying to say. ;)
(09:20:12 AM) MichaelDaum: this html attr is deprecated anyway and not allowed in html5 as far as I know
(09:20:22 AM) gac410: right. I just looked that up
(09:20:49 AM) MichaelDaum: I filed it as Item14574
(09:21:37 AM) MichaelDaum: guys I am hungry like a wolf. need to get some lunch.
(09:22:10 AM) gac410: Okay. Will you fix 14574. Do you want me to hold off on 2.1.5 for a while more. I fixed up all the extension versions & release notes the other day.
(09:22:16 AM) gac410: Have a good lunch
(09:22:46 AM) MichaelDaum: yes will do
(09:24:44 AM) gac410: MichaelDaum: one other little thing. nginx config. I found that just passing to fcgi without setting bin/view works just fine. No need to do any special handling for short urls.
(09:25:31 AM) MichaelDaum: I will take look and try it out on my setting. awesome.
(09:25:34 AM) gac410: foswiki seems to manage to figure out the action whether it's /bin/view/Web or just /view/Web or just /Web
(09:26:26 AM) MichaelDaum: whats the topic where you had the settings?
(09:27:19 AM) gac410: looking. It's a task. you made too many commits :D Scrolled off the rss feed.
(09:27:43 AM) gac410:
(09:27:49 AM) MichaelDaum: thanks.
(09:28:27 AM) MichaelDaum: alright. anything else for today's RM?
(09:28:54 AM) gac410: I don't think so. I've been holding off making 2.2 feature freeze
(09:29:35 AM) MichaelDaum: good point. dates: when do we want to release 2.1.5?
(09:30:30 AM) gac410: I've been working towards something soon. next week or two. Probably just a RC on f.o, wait a week, and then release.
(09:31:20 AM) MichaelDaum: for me 2017 ends on Dec 22
(09:31:59 AM) MichaelDaum: I will be back online during the first Jan week
(09:32:26 AM) gac410: How about I build 2.1.5 RC this coming weekend. 16/17, and we release on the 22nd Does that work?
(09:32:50 AM) MichaelDaum: sounds good. lets do so.
(09:33:02 AM) gac410: Good A Decision! yay..
(09:33:17 AM) gac410: Have a good lunch ... I'm off to make breakfast
(09:33:34 AM) MichaelDaum: thanks. back in an hour or so.
(09:33:45 AM) MichaelDaum is now known as MichaelDaum_
(09:33:45 AM) gac410: Everyone... Thanks for participating. This is probably last RM for 2017.
(09:34:24 AM) vrurg: Thanks gac410!
(10:27:55 AM) GuilainC_AtWork left the room (quit: Ping timeout: 260 seconds).
(10:35:40 AM) MichaelDaum_ is now known as MichaelDaum

Topic revision: r1 - 22 Jan 2018, GeorgeClark - This page was cached on 22 Mar 2018 - 08:33.

The copyright of the content on this website is held by the contributing authors, except where stated elsewhere. See Copyright Statement. Creative Commons License