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

[HEAD] - endless loop, working with 3.6.1 #2994

Closed
futureweb opened this issue Sep 23, 2019 · 16 comments
Closed

[HEAD] - endless loop, working with 3.6.1 #2994

futureweb opened this issue Sep 23, 2019 · 16 comments

Comments

@futureweb
Copy link

futureweb commented Sep 23, 2019

With current libsass HEAD (b894c52) the compiler won't finish, no Error, just endless waiting for SCSS Snippet further down ....
SCSS is from a Templatemonster Template ... got some Templates with compiling Problems with latest HEAD while there were no problems with 3.6.1.
I isolated the Problem to this Part:

SCSS:

.one-screen-page {
	@extend %context-dark;
}

%context-dark {
	.button-secondary-outline {
		&:hover,
		&:focus,
		&:active,
		&:hover {
			color: #fca;
		}
	}
}

Actual results

[libsass HEAD - b894c52]
endless loop without Error

version info:

$ sassc -v
sassc: 3.6.1-5-g507f0-dirty
libsass: 3.6.1-45-gb894c5
sass2scss: 1.1.1
sass: 3.5

Expected result

libsass 3.6.1 (4d229af)

CSS:

.one-screen-page .button-secondary-outline:hover, .one-screen-page .button-secondary-outline:focus, .one-screen-page .button-secondary-outline:active, .one-screen-page .button-secondary-outline:hover {
  color: #fff;
}

version info:

$ sassc -v
sassc: 3.6.1-5-g507f0-dirty
libsass: 3.6.1-dirty
sass2scss: 1.1.1
sass: 3.5

Verified with https://www.sassmeister.com/ that it's also compiling with 3.5.4

STRACE of endless processing:

strace -s 99999 sassc test.scss test.css
execve("/usr/local/bin/sassc", ["sassc", "test.scss", "test.css"], [/* 26 vars */]) = 0
brk(NULL)                               = 0xa50000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f441c9b4000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=138230, ...}) = 0
mmap(NULL, 138230, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f441c992000
close(3)                                = 0
open("/lib/libsass.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220a\r\0\0\0\0\0@\0\0\0\0\0\0\0xP\317\1\0\0\0\0\0\0\0\0@\0008\0\7\0@\0&\0%\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\26@+\0\0\0\0\0\26@+\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0\0N+\0\0\0\0\0\0NK\0\0\0\0\0\0NK\0\0\0\0\0\320#\1\0\0\0\0\0\220\245\1\0\0\0\0\0\0\0 \0\0\0\0\0\2\0\0\0\6\0\0\0\20\v,\0\0\0\0\0\20\vL\0\0\0\0\0\20\vL\0\0\0\0\0\20\2\0\0\0\0\0\0\20\2\0\0\0\0\0\0\10\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\310\1\0\0\0\0\0\0\310\1\0\0\0\0\0\0\310\1\0\0\0\0\0\0$\0\0\0\0\0\0\0$\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0P\345td\4\0\0\0\270\203&\0\0\0\0\0\270\203&\0\0\0\0\0\270\203&\0\0\0\0\0\34\220\0\0\0\0\0\0\34\220\0\0\0\0\0\0\4\0\0\0\0\0\0\0Q\345td\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0R\345td\4\0\0\0\0N+\0\0\0\0\0\0NK\0\0\0\0\0\0NK\0\0\0\0\0\0\342\0\0\0\0\0\0\0\342\0\0\0\0\0\0\1\0\0\0\0\0\0\0\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\366}\203I\277\305\"#0s\16\262\351a\225C\211\257sz\0\0\0\0\3\20\0\0\265\0\0\0\0\4\0\0\20\0\0\0\10 \0\0\1$ \30@\0\31\6\0\0020G\0\0\2\0\f\0\0\10\2\0\0 \0\21\0\0\20\0\4 (\0\205\20\246\220\0\0S\274\0\0\200\0\204$DH\202\1\0\1 \200\f\200@\202\0220\222E!\20\30\1\302\10\240\0\0\216\7D\2\4\262\243\4\0\"\"\0@\4\0K\22\0\201\"\0\2\200\4A\10\0\0`\202\2\22\2!\20\244@\300\1\300\2\1\3\23\4\6\4\250\0$\340H\f\10\20\0214\0\t\20\f\210\10\204\2\303b\22\0\0\0\210\0\"\00013(h\10\22\20\0\20\1\2 \30C\20\25H\0 \20\200\0\0\321\21H\200\242\nH\0\0\0208@\0\340\202\0\24\0\0\0\300\4\0\4\0\200H\0100 P\0\4\200\4\4\0\20\1\0 \2\314\1A\10@\200\0\2\0\20\201\204\20a\340(\0\1\200\2\6\0\1\214\200\2\0P\10\20\0\221\0 \314& \10`\0\2\0\20\0@\2\0\204.\34\"\23\0@\n\fG$\211\16NQH\10\10\0AP\2C\0\n\0\240\0% H\t8\20\4\2c\"\31Q\211\30B\10\20\200\224\1\20\1\24\224\345\vP\204", 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=30366200, ...}) = 0
mmap(NULL, 5043088, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f441c2c4000
mprotect(0x7f441c579000, 2093056, PROT_NONE) = 0
mmap(0x7f441c778000, 81920, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2b4000) = 0x7f441c778000
mmap(0x7f441c78c000, 29584, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f441c78c000
close(3)                                = 0
open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\r\0\0\0\0\0\0@\0\0\0\0\0\0\0\30C\0\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0!\0 \0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\37\0\0\0\0\0\0\4\37\0\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0X-\0\0\0\0\0\0X- \0\0\0\0\0X- \0\0\0\0\0\20\3\0\0\0\0\0\0\270\3\0\0\0\0\0\0\0\0 \0\0\0\0\0\2\0\0\0\6\0\0\0\210-\0\0\0\0\0\0\210- \0\0\0\0\0\210- \0\0\0\0\0\20\2\0\0\0\0\0\0\20\2\0\0\0\0\0\0\10\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\310\1\0\0\0\0\0\0\310\1\0\0\0\0\0\0\310\1\0\0\0\0\0\0D\0\0\0\0\0\0\0D\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0P\345td\4\0\0\0@\31\0\0\0\0\0\0@\31\0\0\0\0\0\0@\31\0\0\0\0\0\0\274\0\0\0\0\0\0\0\274\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0Q\345td\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0R\345td\4\0\0\0X-\0\0\0\0\0\0X- \0\0\0\0\0X- \0\0\0\0\0\250\2\0\0\0\0\0\0\250\2\0\0\0\0\0\0\1\0\0\0\0\0\0\0\4\0\0\0\24\0\0\0\3\0\0\0GNU\0005v\223\310\361\364\235\223\1\fN1R\234\7\315\322\275=\10\4\0\0\0\20\0\0\0\1\0\0\0GNU\0\0\0\0\0\2\0\0\0\6\0\0\0 \0\0\0\0\0\0\0\33\0\0\0\32\0\0\0\2\0\0\0\7\0\0\0\230\2\21\0\200H\0\4\22\0\0@\203(\10\236\32\0\0\0\0\0\0\0\33\0\0\0\0\0\0\0\0\0\0\0\34\0\0\0\0\0\0\0\35\0\0\0\0\0\0\0\36\0\0\0\0\0\0\0\37\0\0\0\0\0\0\0 \0\0\0\"\0\0\0#\0\0\0%\0\0\0&\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0'\0\0\0\0\0\0\0\0\0\0\0\353\26\251\30a\257\0\371\301S\200\30\273\25sB\257\304M\17\221!\374\370\6\2\4\371\3733\373\17\371\31sB\372\31sB\225\263_\31\177\236\320\30a\242\222\6\5\350\7\371\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0=\1\0\0\22\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\375\0\0\0\22\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\337\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\0\0 \0\0\0", 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=19288, ...}) = 0
mmap(NULL, 2109712, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f441c0c0000
mprotect(0x7f441c0c2000, 2097152, PROT_NONE) = 0
mmap(0x7f441c2c2000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f441c2c2000
close(3)                                = 0
open("/lib64/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 \262\5\0\0\0\0\0@\0\0\0\0\0\0\0@\31\17\0\0\0\0\0\0\0\0\0@\0008\0\10\0@\0!\0 \0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0+\213\16\0\0\0\0\0+\213\16\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0\20\215\16\0\0\0\0\0\20\215.\0\0\0\0\0\20\215.\0\0\0\0\0\350\211\0\0\0\0\0\0P\326\1\0\0\0\0\0\0\0 \0\0\0\0\0\2\0\0\0\6\0\0\0\330\364\16\0\0\0\0\0\330\364.\0\0\0\0\0\330\364.\0\0\0\0\0 \2\0\0\0\0\0\0 \2\0\0\0\0\0\0\10\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\0\0\0\0\2\0\0\0\0\0\0$\0\0\0\0\0\0\0$\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0\7\0\0\0\4\0\0\0\20\215\16\0\0\0\0\0\20\215.\0\0\0\0\0\20\215.\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\10\0\0\0\0\0\0\0P\345td\4\0\0\0\324\210\f\0\0\0\0\0\324\210\f\0\0\0\0\0\324\210\f\0\0\0\0\0\224J\0\0\0\0\0\0\224J\0\0\0\0\0\0\4\0\0\0\0\0\0\0Q\345td\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0R\345td\4\0\0\0\20\215\16\0\0\0\0\0\20\215.\0\0\0\0\0\20\215.\0\0\0\0\0\360r\0\0\0\0\0\0\360r\0\0\0\0\0\0\1\0\0\0\0\0\0\0\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\263\331\22\213\317g\206)*3\232GyS\26}\r\332\265\272\0\0\0\0\367\3\0\0\203\0\0\0\0\2\0\0\17\0\0\0\4\200G\0\202@@\230\0\0\0D\2\0\210\20\0\0\0\0\0\242\0\1(\4 \22 \6\220\10\2\f\10\5\2\0Z\0\0\20\n\1\0\10\22\2\\\0\300D\30 \4@\202\5+\200a \20\20\0\0!\201\0`E\0\6\5\271@\220\v\1\t$\30G\2\2\t\20\205\200\200)\10\234`\206i\4\204\304\200y\0d \"\210\3`$\220\200\0002\22( \2B\20B \200\302\2\20\202A\200\241@a\10 \24\0@\2\0\1\0\0\1\4\0\20 @\0\0 \2\0\0\0\0\20@\0\t\0\340\2\4\210\20\0\1@\206\4\2#8\365&@\201\3 \4\0\20\4\f$ \0@\10\0\f\20\0\0\0\4\20\0\6\6\5 B\210@\\\6 \0\20H\4 \0\0@\10\4\1\0\22\364\373\307\237\7\0\203\206\200\20\200\0$\2440 PH! \220\21\200$\340\247 !`\210\210\0\3\0\200\10\3\0\4\0\344\10\220", 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=991616, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f441c991000
mmap(NULL, 3171168, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f441bdb9000
mprotect(0x7f441bea2000, 2093056, PROT_NONE) = 0
mmap(0x7f441c0a1000, 40960, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe8000) = 0x7f441c0a1000
mmap(0x7f441c0ab000, 82784, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f441c0ab000
close(3)                                = 0
open("/lib64/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20S\0\0\0\0\0\0@\0\0\0\0\0\0\0\200P\21\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0$\0#\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\334\7\20\0\0\0\0\0\334\7\20\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0p\r\20\0\0\0\0\0p\r0\0\0\0\0\0p\r0\0\0\0\0\0d\3\0\0\0\0\0\0\270\3\0\0\0\0\0\0\0\0 \0\0\0\0\0\2\0\0\0\6\0\0\0\220\r\20\0\0\0\0\0\220\r0\0\0\0\0\0\220\r0\0\0\0\0\0 \2\0\0\0\0\0\0 \2\0\0\0\0\0\0\10\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\310\1\0\0\0\0\0\0\310\1\0\0\0\0\0\0\310\1\0\0\0\0\0\0D\0\0\0\0\0\0\0D\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0P\345td\4\0\0\0H\206\17\0\0\0\0\0H\206\17\0\0\0\0\0H\206\17\0\0\0\0\0,\22\0\0\0\0\0\0,\22\0\0\0\0\0\0\4\0\0\0\0\0\0\0Q\345td\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0R\345td\4\0\0\0p\r\20\0\0\0\0\0p\r0\0\0\0\0\0p\r0\0\0\0\0\0\220\2\0\0\0\0\0\0\220\2\0\0\0\0\0\0\1\0\0\0\0\0\0\0\4\0\0\0\24\0\0\0\3\0\0\0GNU\0[\24\276Mt\2261g5#\246\20t\301\tY\325\17TU\4\0\0\0\20\0\0\0\1\0\0\0GNU\0\0\0\0\0\2\0\0\0\6\0\0\0 \0\0\0\0\0\0\0\10\3\0\0\22\0\0\0@\0\0\0\f\0\0\0%\0`\0\0\240.\"\200\0\26\211\0 E\"\2\0\300``i\10\212\0\t\0\0\0\0\0\0\0\0\0\0\0\0\212P\20\1\10\0\0\4\1\302\24\1 \210\"\0\304\243X\240\n\6\216\0\212\0\0\4\0@\0\0 \20\0\5\0\5\r\7\7\22A\0\1\0\10\0\0@\0\t\0\20\4D\30\4\200a(\22@\4\1\nE\221 @\200\f\22\1\0\0\0\0\0\0\0\0\4\2\0\0\0@\0\200\2\20\322\0\1\10\4\301 E\1\0\310\"\0\4\2\0\202\0\4\0\0\0\4\0Y\4\2\0\n\200\1\0\0\4\0\20 \3\0\0\210 \10\20\0\0 \2\0\0\200\10\2\4\0\0HQ\0\0\f\2\0\0 \10 \0\0\0\0 #\4\0\200\0I\2\fc\2 A\221\242@\4\202EL  \0\0\300\2\4\200\10\2\r(\2\0\20\"\0!\22\30\30\24 8\0\210\0\0\260  B,\10\302\0 \200\361)\24A\21 @\220 \4\1P\20\202\0\0\214\0\0`\242\10\10A\0\0\0 \202", 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1137024, ...}) = 0
mmap(NULL, 3150120, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f441bab7000
mprotect(0x7f441bbb8000, 2093056, PROT_NONE) = 0
mmap(0x7f441bdb7000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x100000) = 0x7f441bdb7000
close(3)                                = 0
open("/lib64/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220*\0\0\0\0\0\0@\0\0\0\0\0\0\0\10S\1\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\37\0\36\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0TL\1\0\0\0\0\0TL\1\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0\260M\1\0\0\0\0\0\260M!\0\0\0\0\0\260M!\0\0\0\0\0\300\3\0\0\0\0\0\0P\6\0\0\0\0\0\0\0\0 \0\0\0\0\0\2\0\0\0\6\0\0\0\330M\1\0\0\0\0\0\330M!\0\0\0\0\0\330M!\0\0\0\0\0\360\1\0\0\0\0\0\0\360\1\0\0\0\0\0\0\10\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\310\1\0\0\0\0\0\0\310\1\0\0\0\0\0\0\310\1\0\0\0\0\0\0$\0\0\0\0\0\0\0$\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0P\345td\4\0\0\0\304,\1\0\0\0\0\0\304,\1\0\0\0\0\0\304,\1\0\0\0\0\0D\5\0\0\0\0\0\0D\5\0\0\0\0\0\0\4\0\0\0\0\0\0\0Q\345td\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0R\345td\4\0\0\0\260M\1\0\0\0\0\0\260M!\0\0\0\0\0\260M!\0\0\0\0\0P\2\0\0\0\0\0\0P\2\0\0\0\0\0\0\1\0\0\0\0\0\0\0\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\27\237 )\230\344)\252\22\25\220\177mL\\\33\271\311\0016\0\0\0\0\203\0\0\0\26\0\0\0\20\0\0\0\n\0\0\0\23\34\3\30\4$\0\1\1\201\0T\4\6\210\20\200\204\0\10\0\10\5\200\2\0@\20D\20\0\266\2\200\320 \301\0\220\2024\1\0\4\10(@\2H\1\v \320\1\2(\0235\4`l\322\0!\3p`@\322\200\10`\0@\1\0\200\1\0\0\2$\0\10\21\2\10H\300\1$\t\21(  \10C\v\246\202H\t\10\10\3D\f\n\34\22O\306\1\207\va\204\226\315\4\302\305\f\242\333\16\314\26\0\0\0\27\0\0\0\32\0\0\0\0\0\0\0\35\0\0\0\0\0\0\0\37\0\0\0 \0\0\0\"\0\0\0%\0\0\0'\0\0\0\0\0\0\0(\0\0\0*\0\0\0+\0\0\0.\0\0\0000\0\0\0003\0\0\0004\0\0\0007\0\0\0\0\0\0\0008\0\0\0009\0\0\0<\0\0\0=\0\0\0?\0\0\0@\0\0\0A\0\0\0B\0\0\0C\0\0\0E\0\0\0\0\0\0\0F\0\0\0\0\0\0\0G\0\0\0\0\0\0\0\0\0\0\0H\0\0\0I\0\0\0K\0\0\0L\0\0\0M\0\0\0\0\0\0\0\0\0\0\0O\0\0\0Q\0\0\0\0\0\0\0\0\0\0\0", 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=88776, ...}) = 0
mmap(NULL, 2184192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f441b8a1000
mprotect(0x7f441b8b6000, 2093056, PROT_NONE) = 0
mmap(0x7f441bab5000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14000) = 0x7f441bab5000
close(3)                                = 0
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240%\2\0\0\0\0\0@\0\0\0\0\0\0\0\370\301 \0\0\0\0\0\0\0\0\0@\0008\0\n\0@\0L\0K\0\6\0\0\0\5\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0000\2\0\0\0\0\0\0000\2\0\0\0\0\0\0\10\0\0\0\0\0\0\0\3\0\0\0\4\0\0\0\20\334\30\0\0\0\0\0\20\334\30\0\0\0\0\0\20\334\30\0\0\0\0\0\34\0\0\0\0\0\0\0\34\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0\1\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\37\34\0\0\0\0\0\20\37\34\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0\0'\34\0\0\0\0\0\0'<\0\0\0\0\0\0'<\0\0\0\0\0\240Q\0\0\0\0\0\0\340\232\0\0\0\0\0\0\0\0 \0\0\0\0\0\2\0\0\0\6\0\0\0`[\34\0\0\0\0\0`[<\0\0\0\0\0`[<\0\0\0\0\0\360\1\0\0\0\0\0\0\360\1\0\0\0\0\0\0\10\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0p\2\0\0\0\0\0\0p\2\0\0\0\0\0\0p\2\0\0\0\0\0\0D\0\0\0\0\0\0\0D\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0\7\0\0\0\4\0\0\0\0'\34\0\0\0\0\0\0'<\0\0\0\0\0\0'<\0\0\0\0\0\20\0\0\0\0\0\0\0\240\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0P\345td\4\0\0\0,\334\30\0\0\0\0\0,\334\30\0\0\0\0\0,\334\30\0\0\0\0\0\214j\0\0\0\0\0\0\214j\0\0\0\0\0\0\4\0\0\0\0\0\0\0Q\345td\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0R\345td\4\0\0\0\0'\34\0\0\0\0\0\0'<\0\0\0\0\0\0'<\0\0\0\0\0\0009\0\0\0\0\0\0\0009\0\0\0\0\0\0\1\0\0\0\0\0\0\0\4\0\0\0\24\0\0\0\3\0\0\0GNU\0Bj\4dsR0\206(\362\t\0320\323G\355\356\336\327\207\4\0\0\0\20\0\0\0\1\0\0\0GNU\0\0\0\0\0\2\0\0\0\6\0\0\0 \0\0\0\0\0\0\0\363\3\0\0\7\0\0\0\0\1\0\0\16\0\0\0\0000\20D\240 \2\1\210\3\346\220\305E\214\0\300\0\10\0\5\200\0`\300\200\0\r\212\f\0\4\20\0\210D2\10.@\210T<, \0162H&\204\300\214\4\10\0\2\2\16\241\254\32\4f\300\0\3002\0\300\0P\1 \201\10\204\v  ($\0\4 Z\0\20X\200\312DB(\0\6\200\20\30B\0 @\200\0\tP\0Q\212@\20\0\0\0\0\10\0\0\21\20", 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=2151672, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f441c990000
mmap(NULL, 3981792, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f441b4d4000
mprotect(0x7f441b696000, 2097152, PROT_NONE) = 0
mmap(0x7f441b896000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c2000) = 0x7f441b896000
mmap(0x7f441b89c000, 16864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f441b89c000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f441c98f000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f441c98d000
arch_prctl(ARCH_SET_FS, 0x7f441c98d740) = 0
mprotect(0x7f441b896000, 16384, PROT_READ) = 0
mprotect(0x7f441bab5000, 4096, PROT_READ) = 0
mprotect(0x7f441bdb7000, 4096, PROT_READ) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f441c98c000
mprotect(0x7f441c0a1000, 32768, PROT_READ) = 0
mprotect(0x7f441c2c2000, 4096, PROT_READ) = 0
mprotect(0x7f441c778000, 61440, PROT_READ) = 0
mprotect(0x603000, 4096, PROT_READ)     = 0
mprotect(0x7f441c9b5000, 4096, PROT_READ) = 0
munmap(0x7f441c992000, 138230)          = 0
brk(NULL)                               = 0xa50000
brk(0xa71000)                           = 0xa71000
getcwd("/dl/libsass", 4096)             = 12
getcwd("/dl/libsass", 4096)             = 12
getcwd("/dl/libsass", 4096)             = 12
getcwd("/dl/libsass", 4096)             = 12
stat("/dl/libsass/test.scss", {st_mode=S_IFREG|0644, st_size=162, ...}) = 0
open("/dl/libsass/test.scss", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=162, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f441c9b3000
read(3, ".one-screen-page {\n\t@extend %context-dark;\n}\n\n%context-dark {\n\t.button-secondary-outline {\n\t\t&:hover,\n\t\t&:focus,\n\t\t&:active,\n\t\t&:hover {\n\t\t\tcolor: #fca;\n\t\t}\n\t}\n}\n", 4096) = 162
close(3)                                = 0
munmap(0x7f441c9b3000, 4096)            = 0
getcwd("/dl/libsass", 4096)             = 12
getcwd("/dl/libsass", 4096)             = 12
brk(NULL)                               = 0xa71000
brk(0xa92000)                           = 0xa92000
strace: Process 9893 detached
@futureweb futureweb changed the title [3.6.1] - endless loop, working with 3.5.5 [HEAD] - endless loop, working with 3.6.1 Sep 23, 2019
@futureweb
Copy link
Author

@mgreter - seems like this was introduced at f964dcd

@mgreter
Copy link
Contributor

mgreter commented Oct 2, 2019

Thanks @futureweb, this seems to be an issue of the ported dart sass code:

dart D:\github-sass\dart-sass\bin\sass.dart 2994.scss
Unsupported operation: serialization of generic Expressions
#0      BinaryPrinter.defaultExpression (package:kernel/binary/ast_to_binary.dart:2100:5)
#1      _ForInElement&Expression&ControlFlowElement.accept (package:front_end/src/fasta/kernel/collections.dart:53:44)
#2      BinaryPrinter.writeNode (package:kernel/binary/ast_to_binary.dart:375:10)
#3      LimitedBinaryPrinter.writeNode (package:kernel/binary/limited_ast_to_binary.dart:56:11)
#4      BinaryPrinter.writeNodeList (package:kernel/binary/ast_to_binary.dart:294:7)
#5      BinaryPrinter.visitArguments (package:kernel/binary/ast_to_binary.dart:1453:5)
#6      Arguments.accept (package:kernel/ast.dart:2748:30)

Can you try it with dart sass too and see what you get?
If it fails for you too it would be great if you could report to dart sass too.

Thanks!

@futureweb
Copy link
Author

futureweb commented Oct 3, 2019

@mgreter tested with dart-sass 1.23.0 and snippet compiles without problems

scss source:

.one-screen-page {
	@extend %context-dark;
}

%context-dark {
	.button-secondary-outline {
		&:hover,
		&:focus,
		&:active,
		&:hover {
			color: #fca;
		}
	}
}

Result of dart-sass:

.one-screen-page .button-secondary-outline:hover, .one-screen-page .button-secondary-outline:focus, .one-screen-page .button-secondary-outline:active {
  color: #fca;
}

/*# sourceMappingURL=test.css.map */

@mgreter
Copy link
Contributor

mgreter commented Oct 3, 2019

@futureweb any chance you can try it with dart-sass master from github directly?

@futureweb
Copy link
Author

futureweb commented Oct 3, 2019

@mgreter - just tested it with latest dart-sass master - same result as with 1.23.0 --> working

@mgreter
Copy link
Contributor

mgreter commented Oct 3, 2019

OK, thanks, will try again when I'm home. Not sure why I get an error in dart sass.

@futureweb
Copy link
Author

alright - just drop me a line if you need further tests from me! ;-)

@mgreter
Copy link
Contributor

mgreter commented Oct 3, 2019

The issue is in extender.cpp ~ line 1080. Seems something with rotateSlice is not fine.
Will give it a quick shot now, but not sure when I have time to really look into it ...
Edit: After upgrading dart-sdk the error is gone so I can at least compare both impls.

@mgreter
Copy link
Contributor

mgreter commented Oct 3, 2019

And the culprit is the duplicate &:hover selector (you can safely remove one to get it working).

@mgreter
Copy link
Contributor

mgreter commented Oct 3, 2019

Can you try to patch eval.cpp around line 2120?

- selectorStack.emplace_back(evaled);
+ selectorStack.emplace_back(SASS_MEMORY_COPY(evaled));

This seems to fix the issue for me. But need to check further
why we need two copies and the original here ...

@futureweb
Copy link
Author

@mgreter - I would ... if I could find it?!?
eval.cpp only got 1530 Lines for me, als also "selectorStack.emplace_back(evaled);" is not found within this file? Actually I can't find "selectorStack.emplace_back(evaled);" anywhere in the Code? What do I overlook? 🤔

@mgreter
Copy link
Contributor

mgreter commented Oct 3, 2019

Sorry, seems I was referencing my latest refactoring branch. It makes your case pass, but fails two circular extend spec tests. Looks like this is more complicated than expected :(

@futureweb
Copy link
Author

haha - was already puzzled what you are refering to ... ;-)
... nasty little Bug! :-/

@mgreter
Copy link
Contributor

mgreter commented Oct 4, 2019

Please try with #2995. We still need a spec test for this ...

@mgreter
Copy link
Contributor

mgreter commented Oct 4, 2019

Fixed by #2995

@futureweb
Copy link
Author

sorry for late reply - have overlooked your comment :-/
Just tested your fix and it's working like a charm ... thx!! ;-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants