Hi,
after having finished its 11405th build, the last official RBuild
builder has gone offline, forever.
The Linux CMake builder has now turned as being the official builder.
Thanks RBuild, you served us well :-).
Also, the other RBuild builder, the release builder has also gone
offline forever. Its hardware was not able to properly handle a ReactOS
build, and was hardly upgradable.
Daily release builds should replace it any time soon.
With my best regards,
--
Pierre Schweitzer <pierre(a)reactos.org>
Systems Administrator
ReactOS Foundation
Runner-up to Arty's patch of the year.
Best regards,
Alex Ionescu
On Sun, Apr 29, 2012 at 3:00 AM, <tkreuzer(a)svn.reactos.org> wrote:
> Author: tkreuzer
> Date: Sat Apr 28 20:00:09 2012
> New Revision: 56442
>
> URL: http://svn.reactos.org/svn/reactos?rev=56442&view=rev
> Log:
> [PSEH]
> Fix a serious bug in PSEH that could lead to stack corruption and was causing CSRSS to crash, when large amounts of text were output on the console.
> Background: PSEH used __builtin_alloca to allocate an SEH registration frame on the stack on demand, ie only for the first try level. But there are some nasty things with __builtin_alloca: First it DOES NOT - as one might think - free the allocated memory, once the allocation "goes out of scope", like with local variables, but only on function exit. Therefore it cannot normally be used inside a loop. The trick that PSEH used to "fix" this problem, was to save the stack pointer and reset it back at the end. This is quite problematic, since the rest of the code might assume that the stack pointer is still where it was left off after the allocation. The other thing is that __builtin_alloca() can allocate the memory whenever it likes to. It can allocate everything on function entry or not allocate anything at all, when other stack variables that went out of scope have left enough space to be reused. In csrss it now happened that the allocation was done before the stack pointer was saved,
> so the memory could not be freed by restoring the old stack pointer value. That lead to slowly eating up the stack since the code was inside a loop.
> The allocation is now replaced with a variable sized array. The variable stays in scope until the _SEH2_END and will be automaticall cleaned up by the compiler. This also makes saving and restoring the stack pointer obsolete.
> Reliability++
>
> Modified:
> trunk/reactos/include/reactos/libs/pseh/pseh2.h
>
> Modified: trunk/reactos/include/reactos/libs/pseh/pseh2.h
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/libs/pseh/…
> ==============================================================================
> --- trunk/reactos/include/reactos/libs/pseh/pseh2.h [iso-8859-1] (original)
> +++ trunk/reactos/include/reactos/libs/pseh/pseh2.h [iso-8859-1] Sat Apr 28 20:00:09 2012
> @@ -192,7 +192,6 @@
> if(_SEHTopTryLevel) \
> { \
> _SEH2LeaveFrame(); \
> - __asm__ __volatile__("mov %0, %%esp" : : "g" (_SEHStackPointer)); \
> }
>
> #define __SEH_END_SCOPE_CHAIN \
> @@ -219,16 +218,14 @@
> static const int _SEH2ScopeKind = 0; \
> volatile _SEH2TryLevel_t _SEHTryLevel; \
> volatile _SEH2HandleTryLevel_t _SEHHandleTryLevel; \
> - void * _SEHStackPointer; \
> + _SEH2Frame_t _SEH2Frame[_SEHTopTryLevel ? 1 : 0]; \
> volatile _SEH2TryLevel_t * _SEH2TryLevelP; \
> _SEH2Frame_t * const _SEH2FrameP = _SEHTopTryLevel ? \
> - ({ __asm__ __volatile__("mov %%esp, %0" : "=g" (_SEHStackPointer)); __builtin_alloca(sizeof(_SEH2Frame_t)); }) : \
> - _SEHCurFrameP; \
> + _SEH2Frame : _SEHCurFrameP; \
> \
> (void)_SEH2ScopeKind; \
> (void)_SEHTryLevel; \
> (void)_SEHHandleTryLevel; \
> - (void)_SEHStackPointer; \
> (void)_SEH2FrameP; \
> (void)_SEH2TryLevelP; \
> \
>
>
Hello,
Let me invite you to the monthly status meeting taking place last
Thursday of this month, 26th of April, 19:00 UTC.
The meeting will be at irc://fezile.reactos.org (Port 6667, no SSL) in
the channel #meeting. Note that the IRC service will only be started
shortly before the meeting. Your participation passwords will be emailed
to you shortly before the meeting starts.
If someone still is not getting passwords sent before a meeting - please
email Colin or Pierre before the meeting started to get one.
In order to save time, let's choose who is going to be the minute taker
on the upcoming meeting. Volunteers welcome.
An agenda for the meeting will be posted when the meeting starts. Please
email me your suggestions before the meeting so that the resulting
agenda could be compiled beforehand.
With the best regards,
Aleksey Bragin.
April 2012 Meeting Minutes
2012-04-26
19:00 UTC
Fezile, #meeting
Proceedings
===========
* Meeting started at 19:20 UTC by Amine Khaldi.
* Point 1: The state of Trunk
-----------------------------
* Amine Khaldi mentioned that we still have several regressions to get
fixed. Olaf Siejka stressed the fact that developers should actually
look into these regressions and fix them, and wondered about the optimal
selection process to ensure this.
* Timo Kreuzer suggested that we should assign these regressions, to
increase the possibility of having them fixed. He explained that the
selection should be by the guilty revision first (the revision that
triggers the regression), and the author of that revision should at
least take a look, and if it's *really* not his fault and he can't fix
it, then he can assign it back to ros-bugs.
* Amine Khaldi mentioned that at the moment there is no way to know what
developers are working on exactly, until they commit, and suggested
using bug reports to document the development, so that commits will
mention them at the end.
* Amine also suggested the following process for the regressions: We
assign those regressions to the author of the guilty revision, the
developer investigates the regression. If he's able to fix the bug, he
changes the bug status to "Assigned" which means he now owns this bug.
If he can't fix it, he will document his finding so far (a comment in
the bug report) and he assigns the bug to any other developer that he
thinks he can fix this, and so on.
* Everyone agreed, as a result, that we should assign regressions, and
that developers should look at what's assigned to them.
* Point 2: Overview of the Atlassian tools
------------------------------------------
* Amine Khaldi gave an overview of what we plan to do with Atlassian
products (Jira, FishEye, Crucible, Bamboo..etc) in case people didn't go
to their website to read about them and watch their videos
(http://www.atlassian.com/).
* Olaf Siejka asked about an ETA for the Atlassian tools adoption.
Aleksey Bragin mentioned that this will happen in the coming two weeks.
* Point 3: Discussing a possible change in the release cycle
------------------------------------------------------------
* Alexander Rechitskiy presented some links from the KDE project about
their svn guidelines, commit policy, release schedule, minor point
releases...etc.
* After a lengthy discussion, the team decided to continue the already
started efforts to improve efficiency and minimize regressions (like
leveraging Patchbot, the recent major Testman improvements...etc).
* Meeting closed at 21:26 UTC by Amine Khaldi.
* Minutes written by Amine Khaldi.
> Author: tkreuzer
> [NTOSKRNL]
> Fix SepGet*FromDescriptor, returning NULL, when the relative offset is 0.
> Fixes VMware tools installer.
Someone buy that man a beer!
Hi guys,
I have compiled the whole project and just want to copy ntoskrnl. Here
is what I execute:
---------------------------------------------------------------------
D:\ReactOS\src\ReactOS-0.3.14-CLT2012>make ntoskrnl_install
[COPY] Z:\ReactOS\system32\ntoskrnl.exe
Total Build Time: 00:02:04
---------------------------------------------------------------------
I don't know why it takes more than 2 minutes. Is it correct?
Thanks.