Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New v63003/gtm8889 (tests GTM-8889 in V63003) #215

Merged
merged 2 commits into from
Jun 8, 2018

Conversation

VinayYottaDB
Copy link
Contributor

@VinayYottaDB VinayYottaDB commented Jun 7, 2018

Tests the following release note:

The ZHELP command does not report errors after the user presses a <CTRL-C>. Previously, when exiting after a <CTRLC>, the utility reported an UNDEF error and left a GT.M help dump file for analysis. (GTM-8889)

@VinayYottaDB VinayYottaDB requested a review from nars1 June 7, 2018 20:03
@VinayYottaDB VinayYottaDB self-assigned this Jun 7, 2018
echo "# Terminal Display:"
echo ""
# Setting GTM prompt so we can run on previous versions (which default to "GTM>"
setenv gtm_prompt "YDB>"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comment says GTM prompt but the prompt is set to YDB>. I think line 22 needs to be fixed.

@VinayYottaDB VinayYottaDB merged commit 0071364 into YottaDB:master Jun 8, 2018
@VinayYottaDB VinayYottaDB deleted the gtm8889 branch June 8, 2018 16:08
JakeYottaDB pushed a commit to JakeYottaDB/YottaDBtest that referenced this pull request Jun 29, 2018
…s in YottaDB/YDB#215)

The test was doing a SET ^a=1 followed by a HANG 1 and another SET ^a=2 in order
to reach jnl_sub_qio_start() while we were not holding crit lock so we would suspend
ourselves (due to the white-box test case) and cause another process to issue a
JNLPROCSTUCK message.

jnl_sub_qio_start() was invoked a lot of times in the above sequence of commands
and the first invocation itself resulted in a call to suspsigs_handler() to suspend
but it did not suspend because we were holding crit. The invocation that caused the
process to suspend was a little later when jnl_sub_qio_start() was invoked through
t_end() -> wcs_timer_start() -> jnl_qio_start() -> jnl_sub_qio_start(). But before
t_end() invokes wcs_timer_start(), it does a REVERT which now causes a check of
whether suspend() was deferred (due to YottaDB#215 code changes) and so we suspend the
process right there (because at this point, we have released crit and are out
of the phase2 commit logic). And so the process does not ever reach wcs_timer_start()
and never gets suspended while holding the jnl buffer qio lock like the test expects
causing the test to eventually fail (because no JNLPROCSTUCK message is later seen).

To work around this, the sequence of commands done by the test have now been simplified
to a SET ^a=1 followed by a VIEW "JNLWAIT". The latter invokes jnl_wait() which call
jnl_sub_qio_start() while we do not hold crit and so the process suspends right there
recreating the same situation that the test wants for a later JNLPROCSTUCK message.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants